设计在线评测系统或 Leetcode2020年7月14日 · 阅读需 4 分钟需求 在线评测系统主要是一个可以远程执行代码的地方,用于教育或招聘目的。在这个设计中,我们专注于设计一个用于面试准备的 OJ,类似于 Leetcode,具有以下需求: 它应该具有核心的 OJ 功能,如获取问题、提交解决方案、必要时编译和执行。 它应该具有高可用性,采用 异步 设计,因为运行代码可能需要时间。 它应该具备水平扩展性,简单易扩展。 它应该稳健且安全,以执行不受信任的源代码。 架构 下面的架构以异步执行的队列和安全执行的沙箱为特色。每个组件都是可单独部署和扩展的。 组件 表现层