<返回更多

微服务拆分的三个火枪手原则

2021-06-17  博客园  架构师笔记
加入收藏

服务粒度——“三个火枪手”原则

三个火枪手原则就是一个微服务由三个人负责开发。一般来说,在进行微服务架构时,根据团队规模来划分微服务数量是合理的。

而为什么是3个人????

拆分方法

  1. 基于业务逻辑拆分:最常见的拆分方式,将系统中的业务模块按照职责范围识别出,每个业务模块拆分为一个独立的服务。但是,每个人对职责范围的理解不一样,如:电商系统中,可以分为“商品”“交易”“用户”3个服务,也可以分为“商品”,“订单”,“支付”,“买家”,“卖家”,“发货”6个服务
  2. 基于可拓展拆分:将系统中的业务模块按照稳定性排序,将成熟的和改动不大的服务拆分为稳定服务,将经常变化和迭代的服务拆分为变动服务。稳定服务的颗粒度可以粗一些(及时是逻辑上没有强关联的服务,也可以放在同一个子系统中);不稳定的服务可以划分的细一些(控制数量,参考三个火枪手原则)。这样拆分还有个好处是避免开发时不小心影响了成熟的功能。
  3. 基于可靠性拆分:将系统中的业务模块按照优先级排序,将可靠性要求高的核心服务和可靠性要求低的非核心服务拆分开来,然后重点保证核心服务的高可用。好处:

4. 基于性能拆分:将性能要求高或性能压力大的模块拆分出来,避免改模块的性能压力问题而影响其他服务。常见的拆分方式和具体的性能瓶颈有关,可以拆分web服务、数据库、缓存等。例如电商的抢购,性能压力大的是入口排队,可以将排队功能独立成一个服务

以上拆分方式可以根据实际情况自由组合,例如可以基于可靠性拆分出服务A,基于性能拆分出服务B,基于可扩展拆分出C/D/F服务等。

基础设施

微服务拆分的三个火枪手原则

 

如图,为微服务的基础设施

微服务所带来的快速开发,这是建立在有良好的基础设施上,换句话说,没有自动测试、自动化部署等等等等支持,当服务拆分的越来越多的时候,也就是所有开发同学、运维同学、测试同学崩溃的时候

通常情况下,一个公司或团队要实施微服务,可以从如下优先级开始:

原文链接:
https://blog.csdn.net/u010530712/article/details/84837251

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>