Kafka消费者配置多集群DNS到bootstrap.servers是否会在各集群生成消费组
结论
首先明确:你这种配置方式不会在两个集群各创建一个消费组,且该配置本身不符合Kafka的客户端设计逻辑,无法实现同时连接两个集群的效果。
原理说明
- Kafka客户端的
bootstrap.servers配置是集群元数据探测地址列表,仅用于客户端启动时拉取集群元数据:客户端会按顺序尝试连接列表内的地址,只要成功连接到任意一个可用节点,就会从该节点获取所属集群的全部元数据,之后所有生产、消费、消费组注册操作都只会在这一个集群内执行,列表内剩余未连接的地址会被直接忽略。 - 你配置的两个DNS对应完全独立的两个Kafka集群,彼此之间没有元数据同步关系,单个Kafka客户端实例只能绑定一个集群,不支持跨集群操作。实际运行时具体连接到哪个集群,完全取决于客户端启动时优先连通了哪个DNS对应的broker节点,消费组也只会在对应的单个集群中创建。
正确实现方案
如果你需要同时消费两个集群的同名Topic,需要初始化两个独立的Kafka消费者实例:
- 每个消费者实例分别配置对应集群的
bootstrap.servers地址 - 两个实例的消费组ID可以相同也可以不同,彼此操作互不干扰,此时才会在两个集群中各自生成对应的消费组。
内容的提问来源于stack exchange,提问作者hoon
相关产品推荐
相关产品推荐

