26 个模块 · 903 个 Java 文件 · 51,173 行代码
把「我用了 Redis ZSet」
讲成「凭什么这么排、凭什么不出事」
这不是又一份技术名词清单。每一页都从业务里那个真实的问题出发:谁痛的、为什么必须这么算、 算错了会怎样。然后才是技术难点、实际踩到的坑、以及如果重做我会改什么。 所有结论都对照源码逐行核实过——包括项目 README 里写了、但代码里其实没有的那些部分。
8核心亮点
40+面试追问
12真实代码缺陷
10Agent 实现状态审计
为什么要按「业务优先」组织
面试官真正想知道的不是「你用过什么框架」,而是三件事: 这个业务问题有多难、你的方案为什么是唯一合理的那个、 以及上线以后出过什么问题、你怎么解决的。 绝大多数候选人的回答停在第一层,于是被追问三层就露底。
所以这里每一页的固定结构是: 业务场景 方案设计 难点拆解 踩过的坑 如果重做 面试问答 源码定位
三条使用纪律
- 先讲业务,再讲技术。回答任何追问前,先用一句话把业务问题说清楚,让对方知道你懂业务而不只是会用 API。
- 不吹没做的。README 里写了不等于代码里有。本手册专门有一页做实现状态审计,说错了会当场翻车。
- 主动交代取舍。每个方案后面都写清代价(复杂度、延迟、成本),只会讲好处的回答不叫方案。
全部章节
00
项目全景:先把业务讲明白
在讲任何技术之前,先能讲清楚一次快递从下单到签收的完整业务链路——这是所有技术选型的根因。
全项目 · 26 个模块 / 903 个 Java 文件 / 51,173 行
→
01
亮点一 · 一句话说清运费
四级模板 + 轻抛系数 + 三段取整阶梯。难点不在公式,在于计费重量这个概念本身;困难在于整条下单主链路没有任何缓存。
chain-cloud-ms-carriage-service · 18094
→
02
亮点二 · 图数据库 + LLM:AI 只输出修正系数
全项目最完整、最能体现工程判断力的案例。真正难的决策不是怎么调用大模型,而是怎么让大模型碰不到钱。
chain-cloud-ms-transport-service :18096 + chain-cloud-ms-aigc-service :18200
→
03
亮点三 · 用户填了个地址,归哪个网点管
MongoDB 2dsphere 空间索引 + 高德地理编码。难点在于 GeoJSON 的坐标约定和多边形重叠的歧义;困难在于写库不是原子的。
chain-cloud-ms-service-scope-service :18089 + chain-cloud-ms-oms-service 消费方
→
04
亮点四 · 下单之后,谁去取?什么时候通知他?
MQ 驱动 + 排班/范围筛选 + AI 选人 + 实时与延迟推送的决策。亮点在决策逻辑,坑在 AI 那一行。
chain-cloud-ms-dispatch-service :18086 + aigc
→
05
亮点五 · 订单存进去了,但消息没发出去 = 一张死单
publisher confirm + Spring Retry + 失败落库 + XXL-Job 补偿 + 死信队列,五层兜底。设计很完整,但有一个致命缺陷让它形同虚设。
chain-cloud-mq(被 base-service 与 oms-service 引用)
→
06
亮点六 · 22 个服务,怎么只在一处鉴权
四端差异化的 Token 策略 + 三层拦截器完成身份透传。设计很清晰,但透传链路上有一行致命代码让整条链路静默失效。
chain-cloud-gateway :9527 + chain-cloud-common
→
07
亮点七 · 取消一个订单,要改两个库
Seata AT 模式 + Redisson 公平锁 + 状态机条件更新。三重手段的分工,是这个模块最值得讲清的部分。
driver / trade / web-customer / web-courier(注意:不在 oms)
→
08
亮点八 · 支付回调会重投,退款能分 20 次
策略工厂 + 分布式锁 + 状态短路 + 分片对账。幂等做得比较扎实,但常量层面有一个值写错的地雷。
chain-cloud-ms-trade-service :18079
→
09
亮点九 · 一条轨迹几万个点,怎么存怎么画
GeoJSON LineString + 途经点规划 + 位置上报。设计上有一个被明确记录的性能隐患,源码里就留着 TODO。
chain-cloud-ms-track-service :18097 + transport-info :18087
→
10
难点总表 · 哪些是真的,哪些是没做的
逐文件核对后的实现状态审计。面试时说错一个"实现了",比少讲一个亮点危险十倍。
全项目审计
→
11
面试问答手册 · 怎么把上面的内容答出来
高频问题 + 场景设计题 + 简历写法 + 反问清单 + 90 秒/5 分钟/15 分钟三档话术。
综合
→
12
项目选型 · 换一个业务,技术点还能不能一样
对 368 个项目做能力指纹与差异化锚点双层打分,筛出技术点与 chain-cloud 大体一致、且业务完全不同的项目。
就业项目库2.2.xlsx · 368 条
→
一次快递的完整旅程
下面这条链路是贯穿全书的骨架。每读完一个亮点,回来对照一下它落在哪一步。
① 客户下单地址 → 地理编码 → 网点反查 → 运费预估亮点 3 / 亮点 1
② 调度取件消费订单消息 → 选快递员 → 生成取件任务亮点 4 / 亮点 2
③ 作业执行任务落库 → 建 ES 索引
④ 揽收支付回写订单状态 → 支付 → 幂等回调亮点 7 / 亮点 8
⑤ 中转运输规划线路 → 生成运输任务 → 司机出入库亮点 2
⑥ 追踪展示打轨迹 → 写 MongoDB → 四端查询
⑦ 签收 / 逆向签收、拒收重派、退款亮点 5