在线判题项目 笔记
兰州大学在线判题测评平台(LZU_OJ)
笔记:https://www.yuque.com/mingzhaosanfanongbianzhou-61d55/epkd26/5c8c1098ee4139ee3a44096078971a88?singleDoc# 《https://wx.zsxq.com/mweb/views/weread/search.html?keyword=OJ在线判题系统项目》
前端:https://github.com/Ding-Jiaxiong/lzu_oj_frontend
后端:https://github.com/Ding-Jiaxiong/lzu_oj_backend
微服务后端:https://github.com/Ding-Jiaxiong/lzuoj-backend-microservice
代码沙箱:https://github.com/Ding-Jiaxiong/lzuoj_code_sandbox
项目总结:
又是一个从 0 到 0.9 的全栈项目。
-
之前都是用的ant design 的命令自动生成前端联调代码,这次是自己装的包来执行命令。
-
第一次在前端整合Md编辑器和代码编辑器。
-
策略模式针对不同的情况,选择不同的判题机,便于分别修改策略和维护。
-
原生 Java 实现代码沙箱。
-
Java 的Docker 客户端。
-
代码沙箱 Docker 实现的时候,没有用虚拟机,直接上了一个8G 的腾讯云服务器,公网 IP 直接就干进去了,有一说一,很耗内存,但是没出意外,所有流程都安全下车了。
-
Docker 沙箱在拿内存信息的时候,确实sleep 一会儿就可以了。
-
Docker 控制安全性确实就方便很多。
-
最后就是微服务改造了,体力活儿,就是聚合接口文档还是第一次见,就算不同服务不同端口,也能有一个全局的视角查看接口文档。
-
直接在网关项目完成解决跨域问题以及权限的校验。
-
通过MQ 提供、消费,完成异步。
下来,前后端都好好改进改进,部署写到简历上吧
#交作业#


