钉钉同步性能优化(异步化+批量化)+ 头像回填 CDN 解析失败
导读
钉钉同步两个故事:(1) 15000+ 用户同步时 HTTP 超时——根因是
toUpdateUsers循环内 3 次 DB 查询每人 = 46000 次 SQL round-trip 在一个事务内串行执行,两步优化:异步化(HTTP 立即返回”已受理”,后台静默执行)+ 批量化(循环前 IN 批量预加载到 Map,循环内 O(1) 查 Map),计划阶段就识别出 4 个潜在 bug(路径双重前缀、BaseResultMap 错映射、dirty-check 破坏恢复语义、peek 污染原始 DB 状态)。(2) 头像回填接口返回 200 但成功数始终为 0——admin 服务器在内网,DNS 无法解析钉钉 CDN 域名static-legacy.dingtalk.com,所有用户全部被静默跳过。