从 30 个微服务、7 套数据库、6 种消息中间件的扁平胶水系统,演进为领域内聚、数据收敛、消息可见、配置可管、部署可溯的现代化域系统。
所有结论附数据来源——SQL 查询、worktree file:line、证据文件可复核。
按业务重要度排序,覆盖开单 → 开票 → 红字 → 配置 → 运维全链路。
| 服务 | 代码仓 | 当前生产 commit | 角色 / 备注 |
|---|---|---|---|
| phoenix-seller-invoice | phoenix-seller-invoice | c4d0af8a | 销项发票主服务 · 2386 文件 / 57 Controller / 32 Feign |
| bill-engine | bill-engine | 728caf19 (prod) / f73dd85 (fat) | 拆单/合并规则引擎 · 5 Controller / 0 Feign |
| source-bill-service | source-bill-service | 70634d59 | 源业务单数据 |
| athena-elastic-consumer | athena-elastic-consumer | 3e2df25f | 通用 Kafka 消费框架 · 1 码 9 用 |
| phoenix-casm-service | phoenix-seller-fe | — | 客商服务 · 依赖度 #2(130 调用方) |
| phoenix-seller-config | phoenix-seller-config | — | 配置中心 · 依赖度 #1(156 调用方) |
| phoenix-zhuque-service | phoenix-zhuque-service | — | 销项业务配置(奥特曼)· Apollo 唯一「销项产品线」 |
| phoenix-red-notification | phoenix-red-notification | — | 红字信息服务 · 7 schema 跨 3 种 DB 引擎 |
| phoenix-xrmq-router | phoenix-xrmq-router | — | RMQ 路由 |
| phoenix-smart-match-invoice | phoenix-smart-match-invoice | — | 智能匹配 |
| phoenix-customer-self-ops | phoenix-customer-self-ops | — | 自助运维 |
| phoenix-script-invoice | phoenix-script-invoice | — | 脚本开票 |
| phoenix-dolphin-service | phoenix-dolphin-service | — | 运维提效 |
| phoenix-bill (legacy) | 122-yango-local-prod | — | 老门户业务单 · 已废弃但未下线 |
bill-engine 部署 release-20260818 分支,但构建 ref = release/20260915 — BRANCH-DIVERGED。fat 部署 commit f73dd85b 比 prod 728caf19e508 还老,但 HEAD 已到 7f7bd11 — fat 既不是 prod 的预演,也不跟随 prod 演进。108 个核心生产 workload 缺 gitProjectId 标签,match_quality='none',核心销项服务无法精准溯源。
按 资产盘点 / 业务代码 / 可观测治理 三大象限,气泡大小代表影响范围。
sellerinvoice schema 7 套 DB / 3 引擎;bill/rednotification 同样 3 引擎
evidence/06_dms_dbs.csv
核心生产 pod 缺 gitProjectId,match_quality=none,溯源靠 tag 还原
dws.workload_active
fat 部署 commit 比 prod 还老,HEAD 进一步演进 — fat 不是预演环境
code-probe: 728caf19 vs f73dd85
phoenix-bill-service Apollo 注册了但 K8s 找不到该 deployment
evidence/03 + workload_active
xf-v4-phoenix-web 与 phoenix-seller-fe 并存;product_line 全部 NULL
portal_micro_apps
20+ commit 全是规则扩展,无架构级 refactor
code-probe: git log -20
2386 文件 / 57 Controller(其中 3 个 mock 进生产)/ 32 Feign
code-probe: scan RestController
PHOENIX-BILL-SERVICE vs phoenix-bill-service vs MsPhoenixBillApi 常量
code-probe: scan FeignClient
9 个 deployment 同一镜像;topic 全部 Apollo 注入
code-probe: KafkaListener topics
2278 个发送点 invisible-dynamic,6 种 MQ 并存
evidence/08_mq_send_visibility.csv
channel_address NULL 数:xplat-sqs 2941 / rabbitmq 2495 / send 1981+859
v_all_mq_operations
4 个枢纽服务被 50+ 调用方依赖;存在双向循环
evidence/04_feign_calls.csv
代码声明的 app_id 未在 Apollo 注册
wt_code_appid_not_in_apollo
4 个核心维度,每条都是「3 阶段 9 个月」可量化的目标。
按 ROI 排序:T1 标签补全(1 周)→ T3 数据分片收敛(6 周,最大)→ T5 单体拆分(8 周,最大)→ T6 MQ 收敛(4 周)。
10 个量化指标 + 数据来源;任何一项不达标即 Phase 3 不收尾。
| # | 维度 | 验收指标 | 数据来源 | 当前 | 目标 |
|---|---|---|---|---|---|
| 1 | 资产盘点 | K8s workload gitlab_matched=true 命中率 | dws.workload_active | ~50% | ≥ 95% |
| 2 | Apollo 对齐 | Apollo app_id ↔ K8s workload 命中率 | 自建 ETL | ~73% | ≥ 95% |
| 3 | 数据分片 | sellerinvoice 跨引擎数 | ods_current.dms_databases | 3 | ≤ 2 |
| 4 | 领域拆分 | 单服务文件数 / 单服务 Controller 数 | code-extract | 2386 / 57 | ≤ 500 / ≤ 15 |
| 5 | MQ 收敛 | MQ 种类 / invisible-dynamic | v_mq_send_visibility | 6 / 2278 | 2 / 0 |
| 6 | 命名规范 | Feign 客户端 Apollo 引用率 | 新视图 v_feign_name_consistency | ~60% | ≥ 95% |
| 7 | 可观测 | in-situ 覆盖率 | dws.v_insitu_* | 65% | ≥ 85% |
| 8 | 部署可溯 | BRANCH-DIVERGED workload 数 | dws.workload_active | ≥ 1 | 0 |
| 9 | 配置纳管 | 214 个未注册 app_id | wt_code_appid_not_in_apollo | 214 | 0 |
| 10 | 灾备 | 7 类治理问题(影子库/血缘/MQ 等) | 治理周报 | 7 类全有 | 全部 ≤ 阈值 |
| 风险 | 缓解措施 |
|---|---|
| 数据迁移期间双写不一致 | T3 用 v_insitu_verified_diff 视图 7×24 比对,差异 > 0.1% 自动告警 |
| invoice 拆库拆服务时回归测试不全 | T5 灰度发布(先拆 1 个 context 试运行 4 周) |
| 消息中间件迁移期间消息丢失/重复 | T6 用 RocketMQ 事务消息 + 幂等表 + 数据校验任务三重保险 |
| 旧库下线被业务遗忘 | T3 给每个旧库建下线 checklist + 6 个月观察期 |
| 团队学习曲线 | 每个任务开 1 周培训 + 配 on-call |
所有结论可在 evidence/ 目录用对应 SQL 重跑复核。
| 文件 | 行数 | 内容 |
|---|---|---|
evidence/01_gitlab_groups.csv | 16 | 销项相关 GitLab group 汇总 |
evidence/02_workloads.csv | 245 | K8s 部署(namespace/workload/gitlab_project_path/sha) |
evidence/03_apollo_apps.csv | 32 | 30 个 Apollo app_id 含 org 归属 |
evidence/04_feign_calls.csv | 60+ | Feign 调用方 → 被调方关系 |
evidence/05_mybatis_tables.csv | 80+ | mybatis 表引用频次 |
evidence/06_dms_dbs.csv | 30 | 销项相关 DB 实例分布 |
evidence/07_mq_channels.csv | 40+ | 销项 MQ 通道 |
evidence/08_mq_send_visibility.csv | 15 | 六态发送可见性 |
evidence/09_source_facts.md | — | 三服务源码事实(worktree file:line) |
refactor-plan.md | — | 完整方案文档(Markdown) |