判题服务和oj系统的web业务服务器分别部署在两台机器上,通过kafka来通信,通信的内容就是判题任务,用户提交代码到系统,系统将次判题任务转为json字符串发送到kafka中,判题服务则从kafka中拉取任务,完成判题之后将结果发送到kafka中,业务服务器拉取结构存入数据库,完成判题。
所以kafka中有两个topic,一个用于传输判题任务,一个传输判题结果
- gcc
- g++
- python3
- java
- pascal
- 生成对应代码源文件
- 编译文件
- 运行程序
- 给出结果
- 通过kafka发回业务服务器