簡體   English   中英

具有不同主題 ApplicationId 的多個 Kafka 流

[英]Multiple Kafka Streams with different topics ApplicationId

給定一個可以有多個實例的組件,以及以下結構:

  1. Stream1[主題 1,目的地 1]
  2. Stream2[主題 2,目的地 2]

其中 destination 是一個隊列,所有鏈接都是 1:1。

我們是否需要為每個 KafkaStream 設置相同的applicationId 眾所周知,applicationId 將生成 client.id 和 group.id,這對於如何分配分區很重要。 在官方文檔中找不到任何內容。

您可以在同一個 JVM 進程中運行兩個應用程序,使用單獨的線程來啟動兩個拓撲,或者您可以簡單地運行兩個獨立的 JVM 進程。 這兩種情況都使用不同的 ID。

或者您可以運行一個進程(一個 id),訂閱兩個主題,但使用branch運算符按主題名稱分隔流。

如果您的程序不同(即不同Topology ),則需要使用不同的application.id配置。 使用相同的application.id配置要求所有實例執行完全相同的Topology

當然,您也可以構建一個同時處理兩個主題的Topology

StreamsBuilder builder = ...

builder.stream("topic1")...to("destination1");
builder.stream("topic2")...to("destination2");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM