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

Kafka分区的消耗是否均匀?

宗政招
2023-03-14

我有一个有几个消费者的消费群体。每个使用者被分配到一组分区。消费者何时轮询选择了已使用分区的消息?它是在消费者端完成的,还是Kafka服务器决定使用哪个分区?

我的一些分区有很多消息,但有些分区没有或几乎没有。但我仍然需要我的消费者平等地使用分配给它的每个分区。因此,我需要我的消费者快速遍历分区,最好从每个分配的分区轮询x条消息。

我在用https://github.com/appsignal/rdkafka-ruby以防万一。

共有1个答案

容鸿畴
2023-03-14

Kafka将要使用的分区分配为循环策略,给每个分区一个公平的使用机会。这样就避免了对分区的饥渴。

另一方面,Kafka不保证数据在分区之间按比例消耗,

请看这里的详细信息。

 类似资料:
  • 根据我的理解,消费者阅读特定主题的消息,并且消费者客户机将定期提交偏移量。 因此,如果由于某种原因,使用者失败了一个特定的消息,该偏移量将不会被提交,然后您可以返回并重新处理该消息。 是否有任何东西跟踪您刚刚消耗的偏移和您随后提交的偏移?

  • 本文向大家介绍Kafka 消费者是否可以消费指定分区消息?相关面试题,主要包含被问及Kafka 消费者是否可以消费指定分区消息?时的应答技巧和注意事项,需要的朋友参考一下 Kafa consumer消费消息时,向broker发出fetch请求去消费特定分区的消息,consumer指定消息在日志中的偏移量(offset),就可以消费从这个位置开始的消息,customer拥有了offset的控制权,可

  • 如果我运行的Kafka集群的分区比我的单个消费者组拥有的消费者还多。对消息的排序或跨分区的消息的按时传递是否有任何保证? 简单示例: 2个分区,1个使用者 生产者通过一个密钥控制分区分配。 消息1进入并转到分区a 消息2进入并转到分区B 消息3进入并转到分区a 我知道消息1将在消息3之前被使用,因为它们在同一个分区中。但是第二条信息呢?是在消息3之前消费还是在消息3之后消费?还是会有变化?它可能在

  • 我正在设计高通量系统,在那里我将有几个生产者。 我的主题将被分割。生产者将发送记录作为键值对。 键将用于对数据进行分区。 消费者将被组织在消费者组中(他们将被分配相同的组id,以便他们可以同时使用来自同一主题但来自不同分区的消息)。 Kafka保证消息在单个分区中的顺序。 消费者将被分配公平份额的分区。 唯一让我担心的是,我的分区键不会以循环方式分发消息,有些分区可能比其他分区更忙。 问:不均匀的

  • 我正在使用Flink处理Kafka的流数据。流程非常基本,从Kafka开始消耗,数据丰富,然后汇到FS。 在我的例子中,分区的数量大于Flink并行级别。我注意到Flink并没有均匀地消耗所有分区。 有时,在一些Kafka分区中会创建滞后。重新启动该应用程序有助于Flink“重新平衡”消费,并快速关闭滞后。然而,过了一段时间,我看到其他分区出现了滞后等现象。 看到这种行为,我试图通过使用flink

  • 我可以使用这个问题中的技巧来强制初始分区和最终分区之间的关系,但是Spark不知道每个原始分区的所有内容都将转移到一个特定的新分区。因此,它不能优化掉洗牌,而且它的运行速度比慢得多。