上一篇我们谈了实施微服务需要避免踩的陷阱,简单提炼为:
- 微服务拆分过细,过分强调“small”。
- 微服务基础设施不健全,忽略了“automated”。
- 微服务并不轻量级,规模大了后,“lightweight”不再适应。
针对这些问题,我们看看微服务最佳实践应该如何去做,本篇是微服务架构最佳实践的方法篇,下一篇是基础设施篇。
服务粒度
针对微服务拆分过细导致的问题,我建议基于团队规模进行拆分,类似贝索斯在定义团队规模时提出的“两个披萨”理论(每个团队的人数不能多到两张披萨都不够吃的地步),分享一个我认为微服务拆分粒度的“三个火枪手”原则,即一个微服务三个人负责开发。当我们在实施微服务架构时,根据团队规模来划分微服务数量,如果业务规继续发展,团队规模扩大,我们再将已有的微服务进行拆分。例如,团队最初有 6 个人,那么可以划分为 2 个微服务,随着业务的发展,业务功能越来越多,逻辑越来越复杂,团队扩展到 12 个人,那么我们可以将已有的 2 个微服务进行拆分,变成 4 个微服务。
<