微服务火的时候大家一窝蜂拆,拆得太细反而灾难,聊聊教训。
过度拆分的代价
- 一个简单需求跨 5 个服务改,联调成本爆炸
- 分布式事务/数据一致性头疼(Saga/TCC 复杂度陡增)
- 运维成本:N 个服务的部署/监控/告警/日志
- 团队沟通成本:每个服务一个 owner,跨团队协作摩擦
建议
- 按业务边界拆,不按技术分层拆(订单/商品/用户,不是 controller/service/dao)
- 从单体开始,痛了再拆(别上来就微服务)
- 一个服务一个库(共享库 = 耦合)
- 团队规模和服务数匹配(3 人以内别拆超过 2 个服务)
微服务不是银弹,是「用复杂度换扩展性」。业务没到那个量,单体 + 模块化就够了。