1 单一职责原则:将业务完整、职责单一的功能单元拆分为独立微服务,耦合性强或存在紧密事务联系的相关功能尽量设计在同一微服务中。
2 服务自治原则:基于组件化设计理念,每个微服务都应具备独立的业务能力与独立的运行环境。在微服务架构中,微服务是独立的业务单元,拥有专属的数据模型。每个微服务从开发、测试、构建、部署,都应当可以独立运行,微服务边界清晰,业务依赖最小化.
3 粒度适中原则:微服务拆分应保持适中的颗粒度,首次设计粒度宜粗不宜细,通常采用逐步拆分、持续演进的方式对微服务持续拆分
4 单向依赖原则:微服务建议分层单项依赖,以避免出现微服务间的循环依赖风险
5 无状态原则:微服务应是无状态的,微服务本身不存储任何状态信息,业务完整、职责单一的应用功能单元应当拆分为独立微服务
6 设计建议,建议业务应用包含的微服务数量是三级应用功能的1/3倍到5倍(拆分过细维护困难、影响性能;拆分过粗达不到解耦目的。考虑到实际应用中个别模块之间耦合度比较高或引起分布式事务,可以合并成一个微服务,或某个模块过大,可以拆分为多个微服务)
7 具有重用性特点的公共功能应当拆分为独立微服务
8 访问量较大、资源消耗较大、耗时较长的功能,应拆分为独立微服务
9 一组强关联的数据对象的所有增删改操作,不拆分到多个微服务中
10 耦合性强、存在事务强一致性的业务,不拆分到多个微服务内,尽可能避免分布式事务