前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「第二部:容器和微服务架构」(8) 识别每个微服务的领域模型边界

「第二部:容器和微服务架构」(8) 识别每个微服务的领域模型边界

作者头像
首席架构师智库
发布2020-07-18 18:11:26
3530
发布2020-07-18 18:11:26
举报
文章被收录于专栏:超级架构师超级架构师

在确定每个微服务的模型边界和大小时,目标并不是尽可能实现最细粒度的分离,尽管如果可能的话,您应该倾向于使用较小的微服务。相反,您的目标应该是在您的领域知识的指导下实现最有意义的分离。重点不在于规模,而在于业务能力。此外,如果基于大量依赖关系的应用程序的某个特定区域需要明显的内聚,这也表示需要单个微服务。内聚性是一种识别如何分离或组合微服务的方法。最终,当您获得更多关于域的知识时,您应该迭代地调整微服务的大小。找到合适的尺寸不是一蹴而就的过程。

Sam Newman是公认的microservices的发起人,也是《构建microservices》一书的作者,他强调应该根据前面介绍的有界上下文(BC)模式(领域驱动设计的一部分)来设计microservices。有时,BC可以由多个物理服务组成,但反之亦然。

具有特定域实体的域模型应用于具体的BC或微服务中。业务连续性定义了域模型的适用性,并使开发团队成员对什么必须具有内聚性和什么可以独立开发有一个清晰和共享的理解。这些都是微服务的相同目标。

另一个通知您的设计选择的工具是Conway's law,它声明一个应用程序将反映产生它的组织的社会边界。但有时恰恰相反——公司的组织是由软件组成的。你可能需要推翻康威的法律,按照你希望公司组织的方式建立边界,倾向于业务流程咨询。

要识别有界上下文,可以使用称为上下文映射模式的DDD模式。使用上下文映射,可以标识应用程序中的各种上下文及其边界。例如,每个小的子系统都有不同的上下文和边界。上下文映射是定义和明确域之间边界的一种方法。BC是自治的,包含单个域的详细信息(如域实体),并定义与其他BC的集成合同。这类似于微服务的定义:它是自治的,实现了一定的域功能,并且必须提供接口。这就是为什么上下文映射和有界上下文模式是识别微服务的域模型边界的好方法。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 首席架构师智库 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档