迁移依赖矩阵是什么
迁移依赖矩阵把应用之间的调用关系整理成表:谁调用谁、走什么协议与端口、是否跨机房、能否接受停机。它是批次排序的依据,用来避免“先迁数据库再迁应用”这类顺序错误——顺序错了,切换窗口会被无限拉长,回退也变得复杂。
基本信息
| 矩阵维度 | 源 → 目标 / 协议与端口 / 时延敏感 / 停机容忍 |
|---|---|
| 数据来源 | 抓包分析、APM 拓扑、配置检索 |
| 用途 | 批次分组与切换顺序 |
| 红线 | 强依赖的业务尽量整批切换 |
| 维护节奏 | 新增系统与接口变更后同步更新 |
| 配套交付物 | 每批的切换步骤、验证点与回退方案 |
典型使用场景
- 制定迁移批次:先无状态、后中间件、最后数据库
- 核查新增系统是否已纳入矩阵,避免割接当天冒出陌生调用
- 评估跨机房调用的时延影响,判断哪些必须同机房
- 设计切换与回退顺序,明确每批的前置条件
- 作为割接前的交叉检查清单逐项签字确认
从配置与运行时提取依赖
从配置与运行时提取依赖
grep -RhoE '(jdbc|redis|mongodb|amqp)://[^/"[:space:]]+' /etc /opt/app 2>/dev/null | sort -u | head
ss -tnp | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head # 实际连接对端排行
ss -lntp | head -20 # 本机监听端口,对应被哪些系统调用
nmap -sT -p 3306,6379,9200 <本网段>/24 # 只对自己网段扫,补齐未登记的调用方矩阵字段与判定
| 字段 | 取值示例 | 用途 |
|---|---|---|
| 调用方向 | A → B | 决定迁移先后顺序 |
| 协议与端口 | TCP 3306 / 6379 | 制定安全组与放行规则 |
| 时延敏感 | 高 / 中 / 低 | 决定是否必须与对端同机房 |
| 停机容忍 | 可停 / 需窗口 / 不可停 | 决定用停机还是在线方案 |
| 跨域情况 | 同机房 / 跨机房 / 跨云 | 决定网络链路与带宽要求 |
配置里写死的依赖只是一部分:运行时的连接观测(ss、APM 拓扑)才能发现动态类依赖,例如注册中心下发的地址、定时任务回调与消息订阅关系。
矩阵不更新就等于没有矩阵:割接前才发现新增的外部接口未纳入,整批切换会退化成带风险的临时救火。把矩阵更新写进变更流程,谁加接口谁登记。