架构风格与模式58 条

服务粒度判定

服务粒度按事务边界、团队边界、变更频率与数据耦合综合判断;过粗则失去独立演进价值,过细则出现大量跨服务调用与协调成本。

判断信号

信号倾向
经常一起变更合并为同一服务
需要强事务保证放进同一聚合或服务
由不同团队独立负责拆分为独立服务
跨服务调用链超过三层考虑合并或引入编排
粒度随业务与团队演进而调整,并非一次定终身;先粗后细通常比一开始就拆细更稳妥。

易错点

  • 按代码行数或接口数量机械拆分,忽略业务内聚
  • 为消除跨服务事务把多个服务合并回单体,边界没有真正解决

数据来源与参考

  • Sam Newman《Building Microservices》
  • Chris Richardson《Microservices Patterns》(Manning)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌