当前位置: 首页 > 知识库问答 >
问题:

Kafka使用者是否每个分区都有打开的连接?

颛孙飞鸾
2023-03-14

我知道每个分区分配给一个Kafka消费者(在消费者组内),但一个Kafka消费者可以同时使用多个分区。如果每个用户都有一个到分区的开放连接,那么我可以想象每个用户都有成千上万个打开的连接。如果这是真的,那么在决定分区数量时,这似乎是需要注意的,不是吗?

共有1个答案

巫马正卿
2023-03-14

我想你是在问官方Java客户。第三方客户可以做别的事情。

KafkanConsumer没有每个分区的网络连接。正如您所暗示的,这不会很好地扩展。

相反,KafkaConsumer有一个到每个代理/节点的连接,这些代理/节点是它使用的分区的领导者。使用相同的连接传输具有相同引线的分区的数据。它还使用到其组的协调器的附加连接。所以最坏的情况是

看看NetworkClient.java,你会发现连接是每个节点处理的(代理)

 类似资料:
  • 我有10个消费者和10个分区。我取分区数 并且使用相同的group.id创建相同数量的消费者。 我也发现很少这样的日志->

  • 我的消费者并不是每次都能收到信息。我有3个代理(3个服务器)的Kafka集群,有3个主题和复制因子3的分区。 我有Java中的消费者,我将最大轮询记录设置在50000获取字节上,配置在50MB上。应用程序每分钟都进行轮询。当我向主题“my-topic”发送10条消息时,consumer不会给我所有的消息,而是只给我其中的一部分,其余的将在下一次运行中给我。消息是在applicatin睡眠期间由脚本

  • 我们正在使用Spring kafka来消费消息。我们已经为每个分区创建了接收消息的接收器。现在我们需要多个接收者从单个分区接收消息。 对于例如。假设我们有一个分区0。目前,我们只有一个接收器(接收器1)从这个分区接收消息。现在我想为同一个分区(分区0)添加另一个接收器(接收器2)。 因此,如果生产者向这个分区发送100条消息,接收器1应该接收50条消息,其余50条消息应该在接收器2中接收。我不希望

  • 我的消费者代码如下所示: 我是否应该设置另一个属性来允许单个作业从多个分区使用?

  • 多台机器生成事件。这些事件被发送到我们的Kafka集群,其中每台机器都有自己的主题(app.machine-events.machine-name)。因为顺序在每台机器的基础上很重要,而分区大小现在不是问题,所以所有主题都由一个分区组成。因此,目前,N个主题也意味着N个分区。 消费/处理应用程序使用了kafka-streams,我们给出了/“machine-event-processor”,它对每

  • 我正在实现一个自定义消费者的主题/分区分配在Kafka。为此,我将重写抽象类,该类又实现接口。 作为自定义赋值器的一部分,我希望发送一个关于消费者订阅的每个主题的每个分区的单个(浮动)信息。 我知道可以通过重写接口的默认方法向赋值器发送自定义数据。 但是,问题是,从上面的方法签名中,我无法获得为使用者注册的每个主题分配给带下划线使用者的分区列表。 谢谢你。