如何记录 Kafka 流?

How to document Kafka Streams?

如何绘制我的 topci/stream 关系图?有标准吗?

我可以使用流的拓扑并使用像这样的查看器:https://zz85.github.io/kafka-streams-viz/。但是我觉得这个水平太低了。

我想要一个更抽象的图表来表示主题和它们之间的“业务”操作。不需要对 Kafka 有适当的了解就可以理解的东西。

Kafka 流可视化工具仅通过从拓扑描述 (Topology#describe()) 创建图像来工作。

I want a more abstract diagram representing the topic and the "business" operations between them. Something that do not require a proper knowledge of Kafka to understand.

我希望你能避免在图表中使用 KSTREAM-SOURCEKSTREAM-TRANSFORM 等。

Topology
Sub-topologies:
Sub-topology: 0
    Source:  KSTREAM-SOURCE-0000000000 (topics: [conversation-meta])
    --> KSTREAM-TRANSFORM-0000000001
    Processor: KSTREAM-TRANSFORM-0000000001 (stores: [conversation-meta-state])
    --> KSTREAM-KEY-SELECT-0000000002
    <-- KSTREAM-SOURCE-0000000000
    Processor: KSTREAM-KEY-SELECT-0000000002 (stores: [])
    --> KSTREAM-FILTER-0000000005
    <-- KSTREAM-TRANSFORM-0000000001
    ...
    omitted for the sake of brevity

您可以简单地 Replace All KSTREAM-xxx 使用适当的名称。例如,

Topology
Sub-topologies:
Sub-topology: 0
    Source:  Conversations (topics: [conversation-meta])
    --> TransformConversation
    Processor: TransformConversation (stores: [conversation-meta-state])
    --> KSTREAM-KEY-SELECT-0000000002
    <-- KSTREAM-SOURCE-0000000000
    Processor: KSTREAM-KEY-SELECT-0000000002 (stores: [])
    --> KSTREAM-FILTER-0000000005
    <-- TransformConversation

这里KSTREAM-TRANSFORM-0000000001改成了TransformConversationKSTREAM-SOURCE-0000000000改成了Conversations


如果您在 Kafka 流应用程序中使用 处理器 API 并构建拓扑并执行 describe() 拓扑将带有适当的处理器名称,因为在处理器 API 中,您可以为处理器命名。