fix: attachment 直取邮箱/referrer(不用查 sellers)
背景
生产新注册用户 100% 邮箱白名单/collab 早退全部失效。根因:上游 fly_moon_agent 的 loginByEmailFromAccount 外层 @Transactional 事务内 INSERT sellers 未 COMMIT, payment 独立连接 READ COMMITTED 跨事务读不到,重试/sleep 根本救不了。
变更(payment 侧)
- Dubbo attachment 直取邮箱/referrer(不用查 sellers)
- ATTACHMENT_KEY_REGISTER_EMAIL = "register_email"
- ATTACHMENT_KEY_REGISTER_REFERRER = "register_referrer"
- resolveRegisterContext 优先读 attachment,非注册场景回落 sellers 直查
- 删除失效的 3×200ms 重试(白耗延迟、救不了)
- 保留前版 Nacos 白名单(register-ab.email-whitelist.{control,treatment})+ utm_source=collab 早退
- 日志链条 7 节点:attachment 直取 / sellers上下文 / collab 早退 / 邮箱查询 / 白名单命中 / 未命中 / uid 兜底
测试
mvn test AgentUserPointsServiceImplAbTest → 26/26 绿(+4 attachment 路径)
必须同步的上游改动(fly_moon_agent)
TeamServiceImpl.initializationPoints 在 Dubbo 调用前: Sellers sellers = sellersService.getById(userId); // T1 内自可见 RpcContext.getClientAttachment().setAttachment("register_email", email); RpcContext.getClientAttachment().setAttachment("register_referrer", referrer); agentUserPointsService.initUserPoints(userId, initPoints);
两边同版本发布。agent 先发零故障(payment 旧版本忽略 attachment); payment 后发(本 MR)攻抓手生效。
验证
Kibana 搜「注册积分分流-attachment 直取」出现即胜。