微服务最难的不是「怎么通信」,而是「切在哪里」。边界切对了,治理和事务都是顺水推舟;切错了,就是在给自己造「分布式单体」。
1. 拆分的判断依据
服务边界应当高内聚、低耦合:一个服务内部的东西紧密相关,服务之间的依赖尽量少。常用几种视角:
| 视角 | 依据 | 说明 |
|---|---|---|
| 业务能力 | 业务做什么 | 按「订单、支付、库存、用户」这类业务能力划分,最直观 |
| 限界上下文(DDD) | 领域模型边界 | 同一术语在不同上下文含义不同(如「商品」在销售 vs 库存里不一样),边界即上下文边界 |
| 变更频率 | 谁经常一起改 | 频繁一起变更的东西应放在一起;变更节奏差异大的应拆开 |
| 扩展特性 | 谁需要独立扩缩容 | 读多写少、流量尖峰的服务独立出去 |
| 组织架构(康威定律) | 团队划分 | 康威定律:系统结构会趋同于组织的沟通结构。团队边界常是天然的服务边界 |
2026/10/11大约 5 分钟