【系统设计】如何设计一个online judgement system (leetcode)?

RT

1 Like

先列一下requirement

requirement参照Leetcode

你得一条条列出来,不然你还是别做了
我碰到你这样回答的,就直接挂掉
公司里这样做事的,直接fire掉

2 Likes

其实需求列出来以后就可以变成API,然后设计接口,然后设计中间件,然后存储

1 Like

Requirement gathering:

  1. languages support: C++, Python, Java, etc.
  2. Concurrency scale: How many users can online concurrently submit codes? 100, 1k, 10K?
  3. Features needed: Customized test cases? Console output? Submission time and memory distribution?
  4. backend use RMDBS or NO SQL?
  5. Discussion forum and sorting algorithm.

Anything else?

这个不是requirement

老师讲的非常好,我觉得这题的重点是worker怎么设计。能稍微具体说一下worker吗?

其实未必,看面试官重点考察什么

Worker的调度其实就是 resource allocation。参考 Google 最全备战合集 中的

2018 秋季FLAG押题班第9课 - Kafka, Kubernetes, Zookeeper和系统设计 Scheduler

高并发,高性能,资源调度之 Kubernetes

Thanks for correction.