什么时候拆
对于一般的项目,保持单体优先,当出现团队规模扩大、代码耦合严重、性能受限等问题才进行微服务拆分。
对于一些从启动之初就明确目标的大项目,可以在一开始就选择微服务架构。
拆分原则
- 高内聚,低耦合:每个微服务的内部功能高度相关,服务之间尽量减少依赖
- 单一职责:每个服务只负责一类业务,做好一件事。
- 数据自治:每个服务拥有自己的数据存储,不能跨服务共享数据库。
- 渐进式:从非核心、低依赖服务开始拆分,而不是完全重构。
拆分方法
- 基于领域驱动设计DDD拆分
- 基于业务能力垂直拆分
- 基于通用部分横向拆分