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

Kafka是否防止消费者在网络分区后提交?

梁丘缪文
2023-03-14

假设:

  1. Kakfa消费者从其分配的分区P读取消息M
  2. 它将网络与代理隔离
  3. Kafka检测到这一点,并将P重新分配给另一台机器上的消费者
  4. 网络分区已修复,第一个使用者尝试提交消息M的偏移量

在步骤4中会引发任何异常吗?是否有检查可以检测到第一个消费者不再被分配分区P,因此不应该为其提交偏移量?

共有2个答案

封鸿雪
2023-03-14

https://cwiki.apache.org/confluence/display/KAFKA/AKafka协议指南

给定消费者组的偏移量由称为组协调器的特定代理维护。i、 例如,消费者需要向这个特定的代理发出其偏移提交和获取请求

因为一个组协调器负责,它知道哪些消费者分配了分区,哪些消费者不再分配分区

当他们重新加入时,他们的待遇与加入消费群体的全新消费者相同。他们将获得通过重新平衡分配的一个或多个分区(这可能与他们上次读取的分区完全不同),并且consumer_offset主题将通知他们从哪里开始读取。

董建茗
2023-03-14

在这种情况下,第一个消费者不能再提交关闭集。它分配的分区将被撤销,当它再次加入消费者组时,将触发重新平衡过程。所以答案是肯定的。

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

  • 我有一个简单的Kafka设置。生成器正在以较高的速率向单个分区生成具有单个主题的消息。单个使用者正在使用来自此分区的消息。在此过程中,使用者可能会多次暂停处理消息。停顿可以持续几分钟。生产者停止产生消息后,所有排队的消息都将由使用者处理。生产者产生的消息似乎不会立即被消费者看到。我使用的是Kafka0.10.1.0。这里会发生什么?下面是使用消息的代码部分: 代理上的所有配置都保留为kafka默认

  • null 我在这一页上读到以下内容: 使用者从任何单个分区读取,允许您以与消息生成类似的方式扩展消息消耗的吞吐量。 也可以将使用者组织为给定主题的使用者组-组内的每个使用者从唯一分区读取,并且组作为一个整体使用来自整个主题的所有消息。 如果使用者多于分区,则某些使用者将空闲,因为它们没有可从中读取的分区。 如果分区多于使用者,则使用者将从多个分区接收消息。 如果使用者和分区的数量相等,则每个使用者

  • 我知道kafka将一个主题的数据安排在许多分区上,一个消费者组中的消费者被分配到不同的分区,从那里他们可以接收数据: 我的问题是: 术语,它们是由主机/IP标识的,还是由客户端连接标识的? 换句话说,如果我启动两个线程或进程,使用相同的消费者组运行相同的Kafka客户端代码,它们被认为是一个消费者还是两个消费者?

  • 假设我有一个名为“MyTopic”的主题,它有3个分区P0、P1和P2。这些分区中的每一个都有一个leader,并且本主题的数据(消息)分布在这些分区中。 1.Producer将始终根据代理上的负载以循环方式写到分区的领导者。对吗? 2.制作人如何认识隔断的首领?

  • 谁能请解释和指导我链接或资源阅读关于Kafka消费者如何在下面的场景下工作。 > 一个有5个消费者的消费者组和3个分区的主题(Kafka是如何决定的) 一个消费者组有5个消费者,主题有10个分区(kafka如何分担负载) 两个消费者组和两个服务器的kafka集群,其中一个主题被划分在节点1和节点2之间,当来自不同组的消费者订阅到一个分区时,如何避免重复。 上面可能不是配置kafka时的最佳实践,但