基于Spring AI的分布式在线考试系统-事件处理架构(续) 📅 发布时间:2026/7/4 20:24:11 👁️ 浏览次数: 一、分布式在线考试系统完整架构图细化版以下是包含服务分层、中间件、数据流向、事件通信的完整架构图直观展示各组件的交互关系发布本地事件考生进入考试发送MQ事件考生提交试卷消费MQ事件触发AI评分发布本地事件AI评分开始发送MQ事件评分完成消费MQ事件发送成绩通知消费MQ事件统计考试数据考生端/管理端Web/H5/小程序Nginx反向代理/负载均衡Spring Cloud Gateway路由转发/鉴权/限流考试服务核心业务考试创建/进入/提交技术Spring EventMQ生产者题库服务核心业务题库CRUD/AI出卷技术MyBatis-PlusSpring AI用户服务核心业务用户/权限/资格审核技术RedisJWT评分服务核心业务AI评分/人工评分技术Spring AIMQ消费者通知服务核心业务短信/站内信/邮件技术MQ消费者第三方API统计服务核心业务数据统计/AI分析技术Spring AIMQ消费者Nacos注册中心配置中心RocketMQ分布式事件通信Topic:EXAM_EVENT/SCORE_EVENT/NOTIFY_EVENTRedis 7.0缓存题库/试卷分布式锁考试提交限流器MySQL 8.0主库考试/答题数据分库分表Sharding-JDBC可选MinIO对象存储试题附件/答题截图/AI报告Spring AI 1.0对接智谱AI/文心一言/OpenAI能力出卷/评分/分析监控运维层PrometheusGrafana指标监控SkyWalking全链路追踪XXL-Job定时任务考试服务本地逻辑状态初始化/题库加载评分服务本地逻辑Spring AI调用大模型评分架构图核心说明分层设计严格遵循「客户端→网关→核心服务→中间件→持久化」的经典分布式分层架构职责边界清晰事件通信红色标注的RocketMQ是分布式事件通信的核心所有跨服务事件如提交试卷→评分→通知均通过MQ流转AI能力集成Spring AI作为独立能力层对接各AI大模型所有AI相关逻辑评分/出卷/分析均由专门的服务调用与核心业务解耦高可用组件Nginx做负载均衡、Sentinel网关/服务内做限流、Redis做缓存/分布式锁、MQ做消息可靠性保障覆盖考试高峰期的高并发需求。二、核心业务时序图考生提交试卷→AI评分→成绩通知以「考生提交试卷触发AI评分成绩通知」为例绘制时序图Mermaid语法展示「Spring EventMQ」的完整执行流程包含本地事件、MQ消息、AI评分、跨服务通知的全链路SpringAISpringAI[Spring AI大模型]MySQLRedis通知服务评分服务RocketMQ考试服务考生端SpringAISpringAI[Spring AI大模型]MySQLRedis通知服务评分服务RocketMQ考试服务考生端若AI评分失败1. 发送score:error MQ消息2. 触发人工评分流程提交试卷请求userId1001, examId20011. 校验考生状态/试卷完整性2. 保存考生答题数据更新考试状态为「已提交」3. 发布本地事件如更新考试统计快照4. 生成事件IDeventIdxxx做幂等标记SETNX5. 发送MQ消息TopicEXAM_EVENT, Tagexam:submit消息体ExamSubmitEvent确认消息发送成功返回「提交成功」推送exam:submit消息1. 幂等校验检查eventId是否已消费2. OpenFeign远程调用获取考生答题数据3. 发布本地事件AIScoreStartLocalEvent4. 调用大模型构造评分提示词请求AI评分返回AI评分结果score90, descxxx5. 保存评分结果更新评分状态为「已完成」6. 发送MQ消息TopicSCORE_EVENT, Tagscore:complete消息体ScoreCompleteEvent推送score:complete消息1. 幂等校验检查eventId是否已消费2. 组装通知内容考生姓名成绩考试名称3. 发送短信/站内信通知成绩已发布4. 保存通知记录时序图核心说明核心流程考生提交试卷 → 考试服务完成本地业务发送MQ → 评分服务消费MQAI评分发送MQ → 通知服务消费MQ发送通知幂等性每一步MQ消费前均做幂等校验基于eventId避免重复评分、重复发通知解耦设计考试服务不直接调用评分服务仅发送MQ消息无需关注评分逻辑评分服务完成AI评分后仅发送MQ消息无需关注通知逻辑异步特性AI评分、通知发送均为异步执行考生提交试卷后立即返回结果提升用户体验本地事件复用评分服务消费MQ后先转换为本地Spring Event再执行评分逻辑解耦MQ消费和业务逻辑。三、关键补充说明1. 架构图核心要点服务边界每个微服务职责单一考试服务仅处理考试核心流程评分服务仅处理评分符合「高内聚、低耦合」的微服务设计原则中间件定位Nacos统一管理服务注册和配置所有服务启动时自动注册配置动态刷新RocketMQ分布式事件通信的唯一通道替代硬编码的远程调用Redis核心缓存分布式锁解决考试高峰期的数据库压力和并发问题AI能力集成Spring AI作为独立能力层所有服务通过标准化API调用AI能力支持无缝切换大模型如从智谱AI切换为文心一言。2. 时序图核心要点同步vs异步考生提交试卷的核心流程保存数据、更新状态是同步的保证数据一致性跨服务的评分、通知是异步的提升系统吞吐量可靠性保障生产者考试服务MQ消息同步发送重试确保消息不丢失消费者评分/通知服务消费失败后自动重试多次失败进入死信队列人工介入处理监控埋点在MQ发送/消费、AI评分、核心数据库操作处添加埋点接入SkyWalking实现全链路追踪便于定位问题如考生提交试卷后未评分的问题。总结架构图价值清晰展示了从客户端到微服务、中间件、AI层的完整链路明确了「Spring EventMQ」的事件通信在架构中的核心位置以及各组件的职责边界时序图价值还原了「考生提交试卷→AI评分→成绩通知」的核心业务流程直观体现了「本地事件解耦服务内、MQ解耦服务间」的设计思路以及幂等性、异步性、可靠性的落地方式核心设计原则分布式事件通信MQ是跨服务事件的唯一通道替代硬编码的Feign调用本地事件复用服务内逻辑通过Spring Event解耦降低代码耦合度AI能力解耦AI评分/出卷等逻辑通过MQ事件触发与核心业务分离便于扩展。这两张图完整覆盖了分布式在线考试系统的静态架构和动态流程
java.lang.RuntimeException: Image generation still pending 一、问题描述 1、异常信息 java.lang.RuntimeException: Image generation still pendingat com.alibaba.cloud.ai.dashscope.image.DashScopeImageModel.lambda$call$1(DashScopeImageModel.java:165) ~[spring-ai-alibaba-core-1.0.0.2.jar:1.0.0.2]at org.springframework.r… 2026/7/5 4:12:08
PPO 实战 —— 无代码落地大模型偏好优化全流程 一、引言PPO 作为 RLHF 核心算法,是让大模型输出贴合人类偏好的关键技术,看似涉及复杂的强化学习知识,实则借助低代码平台,零基础也能完成全流程实战。本文抛开繁琐公式,聚焦PPO 微调实操全步骤,从数据准备… 2026/7/4 23:16:12
互联网CMS系统怎样实现UEDITOR的EXCEL动态导入? 一文搞定Word内容粘贴公式转换多终端适配方案 作为一名大三的海南软件工程学生,我这个CMS新闻管理系统升级计划确实有点"野心勃勃"啊!不过别担心,我已经为你准备了一套完整方案,保证让你在毕业前就能做出一个惊艳的作品… 2026/5/17 3:10:39
EdgeRemover:在Windows上彻底卸载Microsoft Edge的终极解决方案 EdgeRemover:在Windows上彻底卸载Microsoft Edge的终极解决方案 【免费下载链接】EdgeRemover A PowerShell script that correctly uninstalls or reinstalls Microsoft Edge on Windows 10 & 11. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRemover … 2026/7/5 12:25:48
从CPAN到RPM:perlporter如何彻底简化Perl模块打包流程 从CPAN到RPM:perlporter如何彻底简化Perl模块打包流程 【免费下载链接】perlporter perl pacaking automation tool 项目地址: https://gitcode.com/openeuler/perlporter 前往项目官网免费下载:https://ar.openeuler.org/ar/ 🚀 Per… 2026/7/5 12:23:48
vtopia-agent实战案例:发现并修复企业级安全漏洞 vtopia-agent实战案例:发现并修复企业级安全漏洞 【免费下载链接】vtopia-agent Discovery tools for vulnerabilities. 项目地址: https://gitcode.com/openeuler/vtopia-agent 前往项目官网免费下载:https://ar.openeuler.org/ar/ vtopia-agen… 2026/7/5 12:23:48
2026年AI大模型学习指南:从入门到精通的实战路线 1. 为什么你需要这份2026年AI大模型学习指南 三年前我刚接触大模型时,曾在工具选型上浪费两个月,在微调实验上踩过数据泄露的坑,更因为对计算资源评估不足导致项目延期。这份指南正是我期望当时能获得的"生存手册"——它不仅告诉你… 2026/7/5 12:23:48
Lua反编译神器unluac:如何快速恢复丢失的Lua源代码? Lua反编译神器unluac:如何快速恢复丢失的Lua源代码? 【免费下载链接】unluac fork from http://hg.code.sf.net/p/unluac/hgcode 项目地址: https://gitcode.com/gh_mirrors/un/unluac 你是否曾经遇到过这样的困境:手头只有编译后的Lu… 2026/7/5 12:23:48
AI办公工具实战:提升效率的核心场景与避坑指南 1. 当AI遇上办公:一场效率革命的开始早上8:55分,我像往常一样冲进写字楼电梯,手里端着洒了三分之一的咖啡。会议室里市场部的同事已经在播放第17版PPT,而我的季度报表还卡在数据透视表那一步。这种场景在过去五年里每周都要上演&a… 2026/7/5 12:21:48
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/5 0:01:32
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/5 0:01:32
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/5 0:05:36
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/5 0:01:32
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/5 0:01:32
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/5 0:05:36