微服务拆分原则
可靠性拆分
通过微服务架构,我们可以将系统拆分为多个独立的服务,从而将故障隔离在单个服务内,避免故障扩散到整个系统。
将可靠性要求高的核心服务和可靠性要求低的非核心服务拆分开来,然后重点保证核心服务的高可用。
当重要策划高难度较低的服务发生故障时,不会影响核心模块的服务。
领域驱动原则
使用 DDD(领域驱动建模) 进行业务建模,从业务中获取抽象的模型(例如订单、用户),根据模型的关系进行划分限界上下文。
按照业务稳定性原则
根据二八原则,系统中经常变动的部分大约 20%,80% 是很少变动的,这种拆分方式还能避免 80% 那部分服务的频繁发布。
比如一个电商系统,用户信息、商品信息等管理模块一般是比较稳定的;而运营类的活动和页面是经常变化的
基于吞吐量原则
简单的说就是访问量特别大,访问频率特别高的业务,又要保证高效的响应能力,这些业务对性能的要求特别高。
避免环形、双向依赖
服务之间的环形/双向依赖会使得服务间耦合加重,在服务升级的时候会比较头疼,不知道应该先升级哪个,后升级哪个,难以维护。