微服务依赖关系uml图

时间:2020-02-05 07:42:40

标签: dependencies uml microservices endpoint component-diagram

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

用户服务公开了user_detail端点;

产品服务公开了product_item_detail端点;

订购服务公开了make_order端点。

用户选择一种产品并下订单。

使用uml怎么解释?

我原本打算使用组件图,但是我不了解如何解释每个服务的接口以及它们与其他服务的接口之间的关系。

1 个答案:

答案 0 :(得分:4)

Microservices是可独立部署的组件。因此,使用component diagram似乎是一个很好的直觉:

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

在组件图中,每个微服务将显示为单独的component,其构造型为«service»。由于微服务不仅实现接口,还通过端点公开接口,因此您应该使用ports

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

提供或需要的接口(棒棒糖和插槽)将连接到端口。端口起着不同的作用:没有端口,棒棒糖和插槽也可能意味着在大型整体中对接口分类器的realisation«use» dependency

最后,您的图表可能看起来像:enter image description here

其他想法:

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

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

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

  • 如果您想到微服务,则不可避免地会想到scaling strategies,例如在多个容器/服务器上运行同一服务的多个实例,或者对同一微服务分区的多个实例进行扩展数据。但是,这种情况与组件的部署方案有关。然后,您可以考虑deployment diagrams。但这远远超出了您的问题。