OJ判题系统项目总结+扩展分享

在线地址 http://www.huanghao.icu (代码就不放了,犯病把配置文件都提交了。。) 后端:https://gitee.com/huanghao152/hhoj-backend-microservice 前端:https://gitee.com/huanghao152/hhoj-fronted 这个项目最后用的docker copmose一键部署(真滴快) 服务器用的家里的老电脑刷ubuntu实现,通过内网穿透来实现的公网访问 在这里特别感谢leikooo兄弟,没有他这个项目多半还是单体 扩展点:

  1. 完善了代码沙箱,增加了字典树违禁词,支持四种编程语言
  2. 对提交题目、评论、点赞进行了限流
  3. 扩展了评论模块,同样有违禁词
  4. 扩展了AI答题模块,通过对接火山引擎的DeepSeek模型来生成题目解析和代码,每道题缓存一天
  5. 首页对个人答题数、今日热题、用户排行榜进行统计
  6. 个人中心页面添加了题目提交热力图,同时支持修改头像

待完善点:

  1. 首页相关数据可以进行缓存预热
  2. 既然有了AI答题,其实也可以有AI判题
  3. 增加ES来对题目进行分词搜索
  4. 沙箱方面都是用的原生部署,docker部署有点占内存就没用了
  5. 后面想实现ACM模式的代码沙箱
image.png image.png image.png image.png

image.png image.png

image.png

---------更新---------------

  1. 创建定时任务,每十分钟取出未被消费的消息(状态为Judging且用时超3分钟)发给消费者重新执行
  2. 修复了默认判题机npe问题
  3. 鉴权方式:redis分布式session->jwt
  4. 实现AI生成题目功能
  5. 限流方式:redisson RRateLimiter->sentinel+nacos
  6. 实现了反爬虫机制,一分钟内,10次告警,20次封号
  7. 首页使用了redis缓存提高响应,使用延迟双删策略
  8. 通过nacos+gateway实现了动态黑名单管理(但是不知道为啥拿不到真实ip,成鸡肋了)
  9. 参考亿级点赞项目对评论点赞进行了改造(coding中)
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
牧濑红莉栖
下载 APP