高可用可伸缩微服务架构:基于Dubbo、Spring Cloud和Service Mesh
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3 小结

软件的复杂度体现在业务和技术两个维度,微服务的设计同样需要从这两个维度着手。微服务的核心思想在于“分而治之”,这恰恰也是领域驱动设计应对软件业务复杂度的战略考量。这就从本质上为二者寻找到了“天生一对”的契合点。领域驱动设计虽然不必因为微服务而存在,但确实是因为微服务给了它更多的应用场景,因而重焕青春。微服务自然也不必一定要选择领域驱动设计,但若能通过运用领域驱动设计的思想去指导微服务的实践,将会如虎添翼。

当越来越多的单体架构在向微服务架构迈进时,我们必须保持冷静。微服务绝对不是软件设计的“银弹”,我们更不能自大地认为微服务能够拯救一切复杂的软件系统。领域驱动设计可以让微服务变得更“冷静”,因为从限界上下文到微服务的这一步迈进,会有着上下文映射模式在约束着你,限界上下文的边界控制力也会时刻提醒你冷静对待微服务,康威定律则时刻让你正视团队与微服务之间的映射关系。领域逻辑、团队合作与技术实现,是领域驱动设计规范微服务架构的三要素。