git -C ../order-service log --oneline -3 grep -rn 'amount' ../consumer/ --include='*.java' curl -s localhost:8080/api/order/1 | jq '.amount'
订单服务把 amount 从元改成以分为单位,仓库 A 的 PR 合并了,仓库 B 的消费方没改,联调时解析失败返回 400,两个服务互相调不通,卡了一下午。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。
原因不复杂,两个仓库各自评审,没有人对跨仓库的协议变更做整体把关。字段含义变化没有版本号或兼容期。
「跨仓库联动评审」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。改完隔一天再看一次,当场正常不代表能稳住。
测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
处理上按这个顺序:协议变更在接口仓库统一提 PR 两个消费方一起评审;字段单位变更走新字段 旧字段保留一个版本;联调前跑跨仓库的契约测试;建立变更通知机制 涉及多方时拉群确认。
改完只确认一件事:两个仓库的字段定义一致,契约测试同时通过,联调当天没有出现 400。
