微服务拆分的10条戒律
须弥零一
共 4193字,需浏览 9分钟
·
2021-04-02 16:00
微服务拆分10条戒律
什么是微服务
微服务(英语:Microservices)是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 (Small Building Blocks) 为基础,利用模块化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关 (Language-Independent/Language agnostic)的API集相互通信。微服务是一种以业务功能为主的服务设计概念,每一个服务都具有自主运行的业务功能,对外开放不受语言限制的 API (最常用的是 HTTP),应用程序则是由一个或多个微服务组成。
微服务拆分的10条戒律
1.用有限的上下文和普适语言来审视您的业务领域:
1.与产品所有者进行讨论:“业务目标是什么?”、“特定功能中的参与者是谁?”、“他们在定义功能时使用了哪些术语?”。在这些每个步骤上,都要提出更多问题,直到您弄清楚冲突的术语是什么为止,例如“订单上下文客户”与“基础结构支持上下文客户”是不同的。2.一旦理解了冲突的术语并结合了相关功能,请制定一个上下文,以便在每个上下文中的每个域名的实体名称都是清晰的。3.为每种情况定义一种通用语言,以便业务团队和技术团队在交流时可以使用一种通用语言进行沟通交流。4.从一个粗粒度的有界上下文开始。如果以后有令人信服的理由进行划分,则划分有界上下文。如果有商业原因,我建议不要这样做。
2.确定核心领域并应用创新的点子:
3.对通用域进行成本优化:
4.考虑支持领域:
5.引入反腐层(Anti-Corruption Layer):
6.识别数据通信模式:
7.引入事件驱动架构(EDA):
Rest API
公开所有内容,那么你将会看到这些API创建出了一个非常复杂的通信网络。8.使API简洁明了
CustomerUpdateEvent
的粗粒度事件,而不是提供两个独立的事件。9.将相关的微服务合并为更大的服务:
10.引入无缝开发支持工具:
最后
欢迎留言讨论。
译文连接:
https://dzone.com/articles/10-commandments-on-microservice-decomposition
欢迎关注我的公众号“须弥零一”,原创技术文章第一时间推送。
评论