在 sequence/class 图中将 consume/produce 事件表示为从微服务到消息队列 [Kafka] 的 UML 组件

Representing consume/produce event as UML components from microservice to Message queue[Kafka] in sequence/class diagram

我有一个产生一些事件的用例,使用其他微服务产生的事件以及自己产生的事件。

如何在序列 diagram/class 图中表示 Kafka 系统、游戏中的微服务和 producing/consuming 事件。

在 UML 中,我们有一个来自 DB 的特殊图,我们有任何关于 Kafka 和 cron 作业的东西吗?

使用 Kafka is asynchronous communication of event messages. The UML equivalent are UML signals. In a 的 micros 服务架构的核心,您可以显示参与生命线之间的 messages/signals 交换。消息的名称将是信号的名称(可能是 Kafka 主题),可选地后跟括号之间的信号属性。

您可能希望显示大图,显示生产者和消费者(classes 甚至 micros服务组件)对话,就好像直接在他们之间进行对话一样,而不显示管道(Kafka 或其他 event-queues)。但如果你更喜欢显示全貌,你可以为 Kafka 插入一个 lifeline 并让消费者和生产者与 Kafka 交换消息。但这会使图表复杂得多,尤其是当您有不止一个生产者和一个消费者时。

class 图表 中,您可能会专注于自己的 classes 和信号的描述:

  • 信号是 并允许描述 Kafka 的内容 event/messages(信号的属性)。
  • 您可以向消费者 class 展示他们有 receptions(即他们可以接收一些信号)。对于生产 os 信号没有任何预见,但您可以使用依赖箭头显示您的 class 相关操作它们可以发送什么信号。

不完全清楚您要查找的其他图表:

  • component diagram中,Kafka将是一个组件,具有Subscriber,并提供Publisher接口。根据您的需要,也许还有更多接口。您的 micros 服务将是其他组件。

  • deployment diagram 中,您将显示所有 Kafka 节点的真实分布,并附有一些关于每个节点正在做什么的注释(例如主题和 Kafka 分区)。

  • Activity diagrams can show complex workflows (including sending and accepting events)。如果认为有用,您还可以使用它们来记录事件流 across 几个 micros 服务(每个服务在 UML 图中用一个分区表示)。

P.S:UML 中没有 DB 图:您可以使用 class 图并仅显示 classes 与数据库相关。对于 cron 作业,您需要更具体:可以在多个行为图中显示计时 events/constraints(例如,参见 )。但是你不会显示 cron 本身。