项目简介:“悦题”--判题服务系统是一个集师生作业交互、题目发布、班级管理、积分排行、AI解答以及在线答题与判题等功能于一体的基于微服务架构的综合性教育平台
关键功能实现:
· 身份认证:基于Sa-token+JWT实现网关统一鉴权和内部服务外网隔离,邮箱注册使用Redis缓存验证码,设置过期时间并限制发送频率
· 搜索优化:采用Elasticsearch构建全文检索,采用ik_smart分词器优化题干分词,BM25算法调整题目字段权重,显著提升查找题目的效率
· 缓存设计:通过Caffeine本地缓存+Redis哨兵集群的多级缓存架构,缓存热门题目数据,查询响应时间降低75%(200ms→50ms)
· 异步处理:RabbitMQ解耦邮件发送、判题结果通知,死信队列处理异常任务。
· 后台管理:基于RuoYi-Vue框架搭建后台管理系统,采用多数据源动态切换技术无缝对接原业务数据库,实现零侵入式的数据读写操作
· AI解答:SpringAI Alibaba接入DeepSeek模型,RAG挂载题库规则库,PDF OCR识别(阿里云文字识别API),并支持多轮对话交互,提高学生做题效率
· 容器化部署:通过Netty作为底层通信框架与Docker连接以上传题目测评数据,Go Judge沙箱服务,Docker Compose标准化部署,保障环境一致
·监控与性能调优:运用 SkyWalking 实现全链路追踪快速定位性能瓶颈,通过 JMeter 模拟高并发场景,优化线程池配置与缓存策略,显著提升系统响应速度与吞吐量
·接口限流:用Redis Lua+ AOP实现用户级令牌桶限流,结合 Sentinel + Nacos 动态配置集群级 QPS限流,有效拦截恶意请求
技术架构:SpringBoot、SpringCloud Alibaba、SpringAI Alibaba、Sa-token、Elasticsearch、Redis、RabbitMQ、Docker,Mybatis Plus、XXL-JOB、Nacos,Seata,OpenFegin,Sentinel,Caffeine,等
独立从0到1开发,包括前后端开发,在Linux服务器部署宝塔面板运维,docker实现中间件的容器容器化隔离