6

解释微服务如何相互依赖的最佳图表是什么?例如以下情况:

用户服务暴露user_detail端点;

产品服务暴露product_item_detail端点;

排序服务公开make_order端点。

用户选择产品并下订单。

这是如何使用 uml 解释的?

我曾计划使用组件图,但我不明白如何解释每个服务的接口以及它们如何与其他服务的接口相关联。

4

1 回答 1

18

微服务是可独立部署的组件。因此,使用组件图出现一个非常好的直觉:

它将组件指定为具有定义明确的接口的模块化单元,可在其环境中替换。组件概念涉及基于组件的开发和基于组件的系统结构(...)领域。

在您的组件图中,每个微服务都将显示为具有构造型的单独组件«service»。由于微服务不只是实现接口,而是通过端点公开它,因此您应该使用端口

端口代表 EncapsulatedClassifier 与其环境通信的交互点。

提供或需要的接口(棒棒糖和套接字)将连接到端口。端口有所不同:没有端口,棒棒糖和套接字也可能意味着对大型单体中的接口分类器的实现«use»依赖!

最后,您的图表可能看起来有点像: 在此处输入图像描述

额外的想法:

  • 如果您在原型«service»«subsystem»原型之间犹豫不决,您可以考虑创建您自己的定义«microservice»原型的 UML 配置文件。

  • 如果在某些复杂的图表中您不想显示服务端点的详细信息,您可以只使用不带套接字/棒棒糖的装配连接器,除非您想将焦点放在哪里。

  • 同样,如果你主要对依赖感兴趣,你可以只显示组件及其依赖关系(因为组件是分类器)。

  • 如果您想到微服务,您将不可避免地想到扩展策略,例如在多个容器/服务器上运行同一服务的多个实例,或者将同一微服务的多个实例对数据进行分区。这种虽然是关于组件的部署场景。然后您可以考虑部署图。但这远远超出了你的问题。

于 2020-02-05T22:13:49.580 回答