繁体   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