(1)了解业务问题——识别实体和用例——划分服务责任,我们可以通过这一流程来划定服务范围。
(2)可以采用不同的方式来对服务进行划分:按业务功能划分、按用例划分和按易变性划分。读者可以综合运用这些方法。
(3)好的划分决策能够让服务满足微服务的三大关键特性:只负责单一职责、可替换和可独立部署。
(4)限界上下文通常是与服务边界相对应的,在思考服务的未来发展时,这是一种很有效的方法。
(5)通过对易变领域的深入思考,开发者可以将那些会一起变化的领域封装起来,以提高应对未来变化的适应能力。
(6)如果服务划分不好,后期修正的代价是特别大的,因为到那时,开发者需要重构多个代码库,由此产生的工作量会变得特别大。
(7)我们也可以将技术功能封装成一个服务,这么做既能够简化业务能力,又可以对业务功能提供支撑,并能最大限度地提高服务的可用性。
(8)如果服务边界还不够明确,我们宁可选择粗粒度的服务,但是要主动在服务内部采用模块化的方案来为未来的拆分做准备。
(9)服务下线是一件特别有挑战性的工作,但是随着微服务应用的不断发展,我们未来终有一天会需要这么做。
(10)在大型组织机构中,将所有权拆分到多个团队中是很有必要的,但是这又会引入新的问题:控制变弱、设计受限、开发速度不一致。
(11)代码开放化、接口明确化、沟通持续化以及放宽对DRY原则的要求都可以缓解团队之间的紧张关系。
内容来自微服务实战4.8总结
网友评论