Как документировать потоки Kafka? - PullRequest
0 голосов
/ 09 июля 2020

Как я могу нарисовать диаграмму моего отношения topci / stream? Есть ли для этого стандарт?

Я мог бы использовать топологию потока и использовать такую ​​программу просмотра: https://zz85.github.io/kafka-streams-viz/. Но я считаю это слишком низким уровнем.

Мне нужна более абстрактная диаграмма, представляющая topi c и «деловые» операции между ними. То, что не требует должного знания Кафки для понимания.

1 Ответ

1 голос
/ 10 июля 2020

Визуализатор потоков Kafka работает просто путем создания изображения из описания топологии (Topology#describe()).

Мне нужна более абстрактная диаграмма, представляющая topi c и «бизнес» операции между их. То, что не требует надлежащих знаний Кафки для понимания.

Надеюсь, вы захотите избежать KSTREAM-SOURCE, KSTREAM-TRANSFORM и c на своей диаграмме.

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 было изменено на TransformConversation, а KSTREAM-SOURCE-0000000000 было изменено на Conversations

Если вы используете Processor API в своем приложении потоков Kafka и строите топологию и выполняете describe(), топология будет иметь соответствующие имена процессоров, потому что в Processor API у вас есть возможность давать имена процессорам .

...