知识卡片

微服务粒度应由团队规模决定——三个火枪手原则

普通读书笔记卡 · 1686

内容

微服务的拆分粒度不该按业务逻辑随意细分,而应先按团队规模倒推服务数量——每个微服务由3人负责最合适:2人系统复杂度不够、难以体现分工价值,4人以上则难以让每个人都吃透细节;3人能形成稳定的人员备份避免单点,也刚好能有效讨论又快速达成一致。团队变大后,再把已有服务进一步拆分。发散:这把”服务粒度”这个技术问题重新定义为组织设计问题——先算团队能撑起多少个”3人小组”,再倒推拆成几个服务。

参考来源

- 位置:《从0开始学架构》第40章《35|微服务架构最佳实践-方法篇》"三个火枪手"原则一节(源文件:_epub-src/OEBPS/Text/part0039_split_001.html) - 结论依据:原文明确"3个人负责开发一个系统,系统的复杂度刚好达到每个人都能全面理解整个系统,又能够进行分工的粒度;如果是2个人开发一个系统,系统的复杂度不够……如果是4个甚至更多人开发一个系统,系统复杂度又会无法让开发人员对系统的细节都了解很深",以及"3个人可以形成一个稳定的备份……3个人的技术小组既能够形成有效的讨论,又能够快速达成一致意见"。 - 原始内容:3个人负责开发一个系统,系统的复杂度刚好达到每个人都能全面理解整个系统,又能够进行分工的粒度;如果是2个人开发一个系统,系统的复杂度不够……如果是4个甚至更多人开发一个系统,系统复杂度又会无法让开发人员对系统的细节都了解很深……3个人可以形成一个稳定的备份。