
本篇为Xunzhi-Agent 面试AI项目架构第七天汇总第五天、第六天全部源码思想 最新整套高可用容错体系串联出完整、工业级、可面试全盘口述的分布式架构设计。覆盖状态机机制、多实例集群问题、CAP动态取舍、分布式SingleFlight、Session重锁、FencingToken防脑裂、心跳租约、冷热分层、差量更新、CAS并发保护、幂等补偿、Redis运行态Mongo检查点、Lazy Rehydrate懒恢复、多级降级架构。读完本篇你可以完整讲出整套 AI 高并发长会话系统的架构设计、取舍、容错、兜底。一、项目核心痛点为什么需要整套复杂分布式架构AI面试系统和普通CRUD系统完全不同存在三大致命问题AI调用昂贵大模型调用耗时、耗算力、计费不能重复调用长会话有状态面试是多轮连续流程存在状态流转、上下文依赖不能无状态重试集群多实例极易错乱网络抖动、GC、节点假死、负载均衡重试极易造成状态乱跳、题号错乱、重复AI调用、脏数据、脑裂因此项目不能用简单锁、简单缓存必须搭建一套分层、容错、可降级、可恢复、防并发、防脑裂、防重复的完整分布式架构体系。二、业务层核心轻量状态机 InterviewFlowStateMachine项目手写无状态业务状态机管控整个面试生命周期INIT → ASKING → EVALUATING → FOLLOW_UP → COMPLETED核心设计亮点使用EnumMap EnumSet集中维护合法流转规则消灭散落 if-else状态机 Bean不存任何业务状态所有会话状态外置 Redis/Mongo天然支持多实例非法流转直接抛异常提前拦截脏流程题目耗尽自动闭环完成面试业务自动化原生缺陷重点状态机仅做内存级前置校验读-校验-写非原子并发场景依然会穿透必须依赖下层分布式防护。三、并发第一层防护Session 会话重锁状态机只能管控流程规则无法限制同会话并发多条请求并行执行。用户重试、SSE重连、WebSocket抖动会导致同session同时推进题号、同时打分、同时追问直接打乱状态机。因此引入Session重锁会话粒度分布式锁Key sessionId保证同一个面试会话同一时刻只能跑一条业务重任务简历抽取、神态分析强制先走会话锁防止文件/图片前置逻辑重复执行轻任务评分、追问依靠SingleFlight防重复AI调用Session重锁解决同会话多请求并发乱序问题四、并发第二层防护分布式 SingleFlight 集群去重项目核心架构Session锁保证串行化但无法解决多实例负载均衡重复AI调用。单机SingleFlightConcurrentHashMapCompletableFuture只能JVM内去重集群完全失效。因此自研四层架构分布式 SingleFlight实现全网同一语义请求只执行一次AI调用。四层架构链路业务入口层 → 会话重锁层 → 集群SingleFlight协调层 → AI防护调用层核心机制Owner / Follower 集群选主通过Redis Lua 原子抢占全网同一Key只会选出一个 OwnerOwner真正执行AI调用、持续心跳续租、最终落结果Follower不调用AI阻塞等待、复用结果关键能力故障接管 防脑裂Owner GC卡顿、网络抖动、节点假死心跳超时自动释放权限其他节点重新抢占、生成新的递增 FencingToken接管任务旧Owner恢复后因Token版本过期存储层直接拒绝写入彻底解决脑裂降级机制Hybrid 双模式Redis故障、网络分区时自动降级为本地单机SingleFlight牺牲全局一致性C死保业务可用性A对应整套CAP取舍思想。五、分布式终极安全CAP 动态分层取舍架构本项目不死板CP/AP二选一而是业界高级动态CAP分层架构1. 正常环境优先 CP强一致Redis正常 → 分布式选主 心跳租约 FencingToken防脑裂 → 全网唯一执行无重复、无脏数据。2. 单点故障环境CP高可用ALeader宕机/假死 → 心跳超时自动接管一致性不丢、可用性不崩。3. 极端故障P降级 AP保业务Redis完全不可用 → 降级本地SingleFlight放弃全局一致保证用户面试流程不中断。核心思想能一致就一致实在不行绝不雪崩六、数据层高可用冷热分层 差量更新 CAS 幂等补偿上层解决并发、选主、去重下层解决数据安全、写入安全、恢复安全。1. 冷热数据分层热数据Redis活跃Mongo正在面试会话、运行态、状态机、flight任务、心跳冷数据归档Mongo已完成面试会话迁移归档、清空Redis运行态解决Redis无限膨胀、大key、查询变慢问题。2. 差量更新所有状态、消息、进度更新只更新变更字段不全量覆盖大幅降低写放大、序列化开销。缺点本身无并发防护必须配合CAS。3. CAS 条件并发保护最终写入兜底所有关键更新、状态流转、任务接管全部走CAS 比较交换Mongo根据旧状态、版本号、FencingToken 条件更新Redis Lua状态机CAS抢占、防重复重建、防脏写作用上层无论如何并发穿透存储层一定拦得住非法写入。4. 幂等补偿机制状态机自身幂等同状态不重复流转SingleFlight结果复用同Key不重复AI调用故障可接管、可重试、可区分异常类型禁止不可重试异常重复补偿保证重试、抖动、节点崩溃后业务不会多推进、多生成、多写入。七、系统终极高可用Redis运行态 Mongo检查点 Lazy懒恢复Redis速度快但易丢失、易过期Mongo持久化但慢。项目最终采用混合存储架构兼顾性能与绝对可靠1. Redis高频运行态层承载所有在线状态、任务元数据、心跳、锁、运行时状态机扛高并发。2. Mongo关键检查点真相源将足以恢复整个会话的最小关键快照持续沉淀到Mongo当前流程状态、题号索引历史轮次上下文、材料信息检查点版本号、FencingToken版本Mongo是唯一可信数据源。3. Lazy Rehydrate 懒恢复机制核心亮点不主动批量恢复、不预加载、不预热Redis状态丢失后请求进来才按需按session恢复请求发现Redis运行态缺失查询Mongo最新检查点通过CAS单线程重建Redis运行态恢复流程、上下文、历史轮次、状态机四层机制保障恢复绝对安全冷热分层冷归档会话直接拦截禁止误恢复差量更新恢复仅回填必要字段无全量覆盖CAS并发保护并发恢复只有一个成功杜绝状态写乱幂等补偿恢复只重建视图绝不重复推进业务、重复调用AI八、整套架构七层防御体系面试必背从请求入口到最终落库七层层层防护彻底根治并发与分布式问题Session重锁禁止同会话并发乱执行分布式SingleFlight集群同语义请求只执行一次AI调用状态机规则校验拦截非法业务流转心跳租约机制故障自动接管、不卡死FencingToken防脑裂剥夺旧Leader脏写权限CAS条件写入存储层最终兜底防并发覆盖冷热分层懒恢复幂等补偿故障自愈、数据不乱、业务不崩九、终极面试口述总结我们AI面试长会话系统是一套分层动态CAP、多层防御、故障自愈的分布式高可用架构。业务层通过手写轻量状态机管控面试全流程通过Session会话重锁保证同一会话串行执行为解决多实例重复AI昂贵调用自研分布式SingleFlight集群去重架构基于Redis Lua实现Owner/Follower选主配合心跳租约实现故障自动接管通过FencingToken单调令牌彻底解决集群脑裂僵尸节点脏写问题。架构层面做动态CAP取舍正常环境依靠分布式锁与版本令牌保证强一致性节点故障可自动接管保证高可用极端Redis故障自动降级本地单机SingleFlight牺牲全局一致性保证核心业务不中断。数据层采用Redis运行态Mongo检查点冷热混合存储通过Lazy懒恢复实现Redis状态丢失后的按需自愈搭配冷热分层、差量更新、CAS并发条件更新、幂等补偿整套机制保证高并发、节点故障、网络抖动场景下状态不乱、数据不脏、流程不重复、服务不雪崩。