1、定义系统操作
两部流程从用户需求识别系统操作。
第一步创建抽象领域模型。
第二步定义系统操作,这些操作是根据领域模型定义的。
系统操作包含命令行、查询型两种。
2、定义服务
可以基于业务能力进行拆分服务。
也可以围绕领域驱动设计的子域来分解和设计服务。
服务拆分原则
面向对象设计原则也可以用于指导微服务的设计工作。
按照业务能力和子域以及单一职责、闭包原则是将应用分解成微服务的好办法。
拆分微服务难点
服务的拆分过程中,可能会出现一些障碍:
网络延迟
服务间数据一致性
进程间通信降低服务可用性
获取一致的数据视图
3、定义服务API和协作方式
把系统操作分配给服务
确定支持服务协作所需要的API
小结
微服务架构是一种架构风格,决定了软件系统的非功能性因素,给应用程序带来了更高的可维护性、可测试性、可部署性和可扩展性。