业务角度
最常见的拆分方式,将系统中的业务模块按照职责范围识别出,每个业务模块拆分为一个独立的服务。但是,每个人对职责范围的理解不一样,如:电商系统中,可以分为“商品”“交易”“用户”3个服务,也可以分为“商品”,“订单”,“支付”,“买家”,“卖家”,“发货”6个服务。
基于稳定性
将系统中的业务模块按照优先级排序,将稳定要求高的核心服务和稳定要求低的非核心服务拆分开来,然后重点保证核心服务的高可用。
基于性能
将性能要求较高的服务拆分出来,避免对其他业务影响。例如:秒杀服务。
避免循环依赖或者互相依赖
例如:A服依赖B服务,B服务依赖C服务,C服务依赖A服务;D服务依赖F服务,F服务依赖D服务的情况。
渐进式的拆分
开始选择明确的几个功能服务进行拆分或者相对不那么核心的业务,给技术团队适应新的技术架构时间。给团队试错的机会。采用小步快跑的方式。
参考:
https://blog.csdn.net/qq_32352565/article/details/124270238