kafka是否为每个消费者创建一个单独的连接?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kafka是否为每个消费者创建一个单独的连接?相关的知识,希望对你有一定的参考价值。

在我的应用程序中,我将使用来自100多个主题的数据。我应该为每个主题创建一个消费者还是从所有主题中创建一个消费者消费者?创建100个消费者是否会创建100个到kafka的TCP连接,或者只打开几个连接并重新使用它们?

谢谢!

答案

我应该为每个主题创建一个消费者还是从所有主题中创建一个消费者消费者

首先,是的,一个消费者可以从多个主题中检索数据。

  • 事实上,subscribe()方法(其中之一)要求将List of Topics作为参数。
  • assign()方法,也要求List of TopicPartitions,它可以来自同一主题,也可以来自多个主题。

关于你的“我应该”,这取决于你的需求。如果没有“大量”数据进入(虽然我看到100个主题有点过多),一个单独的线程可以为您处理所有流量,创建固定数量的TCP连接(全部由相同的生成消费者,取决于经纪人的数量等)。

这并不意味着它为每个主题生成固定数量的TCP连接,您。关系不是1 topic --> n Connections,而是1 consumer --> n Connections

以上是关于kafka是否为每个消费者创建一个单独的连接?的主要内容,如果未能解决你的问题,请参考以下文章

kafka权限控制

Kafka - 使用高级消费者的延迟队列实现

每个模式的 JDBC Confluent kafka 连接器和主题

Kafka Streams:使用相同的 `application.id` 从多个主题消费

kafka参数配置

Spring Cloud Stream Kafka 消费者模式