news 2026/6/15 13:21:08

基于Spring AI的分布式在线考试系统-事件处理架构(续)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于Spring AI的分布式在线考试系统-事件处理架构(续)

一、分布式在线考试系统完整架构图(细化版)

以下是包含服务分层、中间件、数据流向、事件通信的完整架构图,直观展示各组件的交互关系:

发布本地事件:考生进入考试

发送MQ事件:考生提交试卷

消费MQ事件:触发AI评分

发布本地事件:AI评分开始

发送MQ事件:评分完成

消费MQ事件:发送成绩通知

消费MQ事件:统计考试数据

考生端/管理端
Web/H5/小程序

Nginx
反向代理/负载均衡

Spring Cloud Gateway
路由转发/鉴权/限流

考试服务
核心业务:考试创建/进入/提交
技术:Spring Event+MQ生产者

题库服务
核心业务:题库CRUD/AI出卷
技术:MyBatis-Plus+Spring AI

用户服务
核心业务:用户/权限/资格审核
技术:Redis+JWT

评分服务
核心业务:AI评分/人工评分
技术:Spring AI+MQ消费者

通知服务
核心业务:短信/站内信/邮件
技术:MQ消费者+第三方API

统计服务
核心业务:数据统计/AI分析
技术:Spring AI+MQ消费者

Nacos
注册中心+配置中心

RocketMQ
分布式事件通信
Topic:EXAM_EVENT/SCORE_EVENT/NOTIFY_EVENT

Redis 7.0
缓存:题库/试卷
分布式锁:考试提交
限流器

MySQL 8.0
主库:考试/答题数据
分库分表:Sharding-JDBC(可选)

MinIO
对象存储:试题附件/答题截图/AI报告

Spring AI 1.0+
对接:智谱AI/文心一言/OpenAI
能力:出卷/评分/分析

监控运维层
Prometheus+Grafana:指标监控
SkyWalking:全链路追踪
XXL-Job:定时任务

考试服务本地逻辑
状态初始化/题库加载

评分服务本地逻辑
Spring AI调用大模型评分

架构图核心说明:
  1. 分层设计:严格遵循「客户端→网关→核心服务→中间件→持久化」的经典分布式分层架构,职责边界清晰;
  2. 事件通信:红色标注的RocketMQ是分布式事件通信的核心,所有跨服务事件(如提交试卷→评分→通知)均通过MQ流转;
  3. AI能力集成Spring AI作为独立能力层,对接各AI大模型,所有AI相关逻辑(评分/出卷/分析)均由专门的服务调用,与核心业务解耦;
  4. 高可用组件Nginx做负载均衡、Sentinel(网关/服务内)做限流、Redis做缓存/分布式锁、MQ做消息可靠性保障,覆盖考试高峰期的高并发需求。

二、核心业务时序图(考生提交试卷→AI评分→成绩通知)

以「考生提交试卷触发AI评分+成绩通知」为例,绘制时序图(Mermaid语法),展示「Spring Event+MQ」的完整执行流程,包含本地事件、MQ消息、AI评分、跨服务通知的全链路:

SpringAISpringAI[Spring AI+大模型]MySQLRedis通知服务评分服务RocketMQ考试服务考生端SpringAISpringAI[Spring AI+大模型]MySQLRedis通知服务评分服务RocketMQ考试服务考生端若AI评分失败1. 发送score:error MQ消息2. 触发人工评分流程提交试卷请求(userId=1001, examId=2001)1. 校验考生状态/试卷完整性2. 保存考生答题数据,更新考试状态为「已提交」3. 发布本地事件(如:更新考试统计快照)4. 生成事件ID(eventId=xxx),做幂等标记(SETNX)5. 发送MQ消息(Topic=EXAM_EVENT, Tag=exam:submit消息体=ExamSubmitEvent)确认消息发送成功返回「提交成功」推送exam:submit消息1. 幂等校验(检查eventId是否已消费)2. OpenFeign远程调用:获取考生答题数据3. 发布本地事件(AIScoreStartLocalEvent)4. 调用大模型(构造评分提示词,请求AI评分)返回AI评分结果(score=90, desc=xxx)5. 保存评分结果,更新评分状态为「已完成」6. 发送MQ消息(Topic=SCORE_EVENT, Tag=score:complete消息体=ScoreCompleteEvent)推送score:complete消息1. 幂等校验(检查eventId是否已消费)2. 组装通知内容(考生姓名+成绩+考试名称)3. 发送短信/站内信通知(成绩已发布)4. 保存通知记录
时序图核心说明:
  1. 核心流程:考生提交试卷 → 考试服务完成本地业务+发送MQ → 评分服务消费MQ+AI评分+发送MQ → 通知服务消费MQ+发送通知;
  2. 幂等性:每一步MQ消费前均做幂等校验(基于eventId),避免重复评分、重复发通知;
  3. 解耦设计
    • 考试服务不直接调用评分服务,仅发送MQ消息,无需关注评分逻辑;
    • 评分服务完成AI评分后,仅发送MQ消息,无需关注通知逻辑;
  4. 异步特性:AI评分、通知发送均为异步执行,考生提交试卷后立即返回结果,提升用户体验;
  5. 本地事件复用:评分服务消费MQ后,先转换为本地Spring Event再执行评分逻辑,解耦MQ消费和业务逻辑。

三、关键补充说明

1. 架构图核心要点
  • 服务边界:每个微服务职责单一(考试服务仅处理考试核心流程,评分服务仅处理评分),符合「高内聚、低耦合」的微服务设计原则;
  • 中间件定位
    • Nacos:统一管理服务注册和配置,所有服务启动时自动注册,配置动态刷新;
    • RocketMQ:分布式事件通信的唯一通道,替代硬编码的远程调用;
    • Redis:核心缓存+分布式锁,解决考试高峰期的数据库压力和并发问题;
  • AI能力集成:Spring AI作为独立能力层,所有服务通过标准化API调用AI能力,支持无缝切换大模型(如从智谱AI切换为文心一言)。
2. 时序图核心要点
  • 同步vs异步:考生提交试卷的核心流程(保存数据、更新状态)是同步的,保证数据一致性;跨服务的评分、通知是异步的,提升系统吞吐量;
  • 可靠性保障
    • 生产者(考试服务):MQ消息同步发送+重试,确保消息不丢失;
    • 消费者(评分/通知服务):消费失败后自动重试,多次失败进入死信队列,人工介入处理;
  • 监控埋点:在MQ发送/消费、AI评分、核心数据库操作处添加埋点,接入SkyWalking实现全链路追踪,便于定位问题(如考生提交试卷后未评分的问题)。

总结

  1. 架构图价值:清晰展示了从客户端到微服务、中间件、AI层的完整链路,明确了「Spring Event+MQ」的事件通信在架构中的核心位置,以及各组件的职责边界;
  2. 时序图价值:还原了「考生提交试卷→AI评分→成绩通知」的核心业务流程,直观体现了「本地事件解耦服务内、MQ解耦服务间」的设计思路,以及幂等性、异步性、可靠性的落地方式;
  3. 核心设计原则
    • 分布式事件通信:MQ是跨服务事件的唯一通道,替代硬编码的Feign调用;
    • 本地事件复用:服务内逻辑通过Spring Event解耦,降低代码耦合度;
    • AI能力解耦:AI评分/出卷等逻辑通过MQ事件触发,与核心业务分离,便于扩展。

这两张图完整覆盖了分布式在线考试系统的静态架构动态流程

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/13 8:35:54

问答系统十年演进

问答系统(Question Answering, QA) 的十年(2015–2025),是从“在预设文本中寻找答案”向“在全量知识中推理逻辑”,再到“具备行动能力的专家智能体”的进化史。 这十年中,问答系统完成了从抽取…

作者头像 李华
网站建设 2026/5/29 17:46:37

闭眼入!9个AI论文工具测评:专科生毕业论文写作全攻略

对于专科生来说,毕业论文写作是一项既重要又充满挑战的任务。面对选题困难、文献检索繁琐、格式规范不熟悉等问题,很多同学在写作过程中感到力不从心。为了解决这一痛点,我们基于2026年的实测数据与用户真实反馈,推出了这份“9个A…

作者头像 李华
网站建设 2026/6/14 0:44:37

ETASOLUTIONS钰泰 ETA8103S2G/ETA8110S2G/ETA8322S2G/ETA8 SOT23-6 DC-DC电源芯片

特性宽输入电压范围:3.5V - 18V自适应恒定导通时间(Adaptive COT)控制强制脉宽调制(PWM)模式能够提供2A输出超快负载瞬态响应高效率同步操作低导通电阻(Rdson)内部功率场效应晶体管(…

作者头像 李华
网站建设 2026/6/14 3:34:56

JOULWATT杰华特 JW5079AQFNF#TRPBF QFN-20 单片降压开关稳压器

特性• 4V至23V工作输入范围 • 10A连续 • 效率高达95% • 轻载高效 • 500kHz开关频率 • 外部旁路输入 • 可编程谷电流限制 • 电源良好指示灯 • 输入欠压锁定 • 输出放电功能 • 输出过电压闭锁保护 • 输出短路保护 • 热保护 • 提供QFN3X3-20封装

作者头像 李华
网站建设 2026/6/9 20:58:38

NORDIC NRF52840-CKAA-R WLCSP-93 无线收发芯片

特性蓝牙5、IEEE 802.15.4-2006、2.4 GHz收发器蓝牙5 - 2 Mbps、1 Mbps、500 kbps和125 kbps;IEEE 802.15.4-2006 - 250 kbps;专有2.4 GHz - 2 Mbps、1 Mbps带FPU的Arm Cortex - M4 32位处理器,64 MHz;从闪存运行时EEMBC CoreMark…

作者头像 李华
网站建设 2026/6/15 11:17:52

隐私安全首选:本地化部署SeqGPT-560M信息抽取系统

隐私安全首选:本地化部署SeqGPT-560M信息抽取系统 1. 为什么企业需要“不联网”的信息抽取系统? 你有没有遇到过这样的场景: 一份刚签完的客户合同要录入CRM,但里面混着人名、公司、金额、日期、条款编号——手动复制粘贴15分钟…

作者头像 李华