Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 卡夫卡,不同的分区会有相同的偏移量吗_Apache Kafka_Kafka Consumer Api - Fatal编程技术网

Apache kafka 卡夫卡,不同的分区会有相同的偏移量吗

Apache kafka 卡夫卡,不同的分区会有相同的偏移量吗,apache-kafka,kafka-consumer-api,Apache Kafka,Kafka Consumer Api,我有一个卡夫卡主题和一个主题的五个分区。将有5个消费群体。每个使用者组都有一个使用该主题的服务实例 卡夫卡中相同记录的每个消费者的偏移量是否相同?偏移量,如果您指的是消息的顺序,则是。这对所有消费者都是一样的,因为订单是由生产者和经纪人决定的。因此,如果您在主题中有msg-1、msg-2、…、msg-1000,那么所有5个消费者都将按照特定顺序消费这些内容。但消费率可能会有所不同。它有很多变量(例如网络延迟、网络拓扑、使用者逻辑等)来确定消耗率。当消息进入分区时,代理分配偏移量,因此它是唯一的,

我有一个卡夫卡主题和一个主题的五个分区。将有5个消费群体。每个使用者组都有一个使用该主题的服务实例


卡夫卡中相同记录的每个消费者的偏移量是否相同?

偏移量,如果您指的是消息的顺序,则是。这对所有消费者都是一样的,因为订单是由生产者和经纪人决定的。因此,如果您在主题中有msg-1、msg-2、…、msg-1000,那么所有5个消费者都将按照特定顺序消费这些内容。但消费率可能会有所不同。它有很多变量(例如网络延迟、网络拓扑、使用者逻辑等)来确定消耗率。

当消息进入分区时,代理分配偏移量,因此它是唯一的,并且与使用者(和使用者组)无关。它标识记录在分区内的唯一位置。
另一方面,从特定分区读取的每个消费者(在消费者组中)将跟踪其自己的偏移量,该偏移量将不同于消费者(在其他消费者组中);本例中的偏移量概念用于跟踪分区内读取消息的位置。当然,它总是一个消息偏移量。

我的意思是,5个不同分区中的同一消息是否具有相同的偏移量?如果此主题的复制因子设置为1,则一条消息将只发送到一个分区。如果它不止一个,那么选择一个复制品作为领导者,其他复制品成为追随者。领导者从制作人那里获取信息,追随者只是按顺序复制信息。因此,在这种情况下,相同的消息将具有相同的偏移量。但我不认为这对你的问题有任何影响。因为复制副本仅在出现故障转移场景时使用。好的,因此,五个不同分区中的同一条消息可以有不同的偏移量。当一条消息进入一个主题时,它只会进入一个分区,而不会复制到五个分区。@ppatierno您的意思是
offset
在生产者上下文和消费者上下文中是不同的吗?假设制作人为一条消息提供了偏移量5。当消费者阅读该消息时,它只是将偏移量5标记为已读。还有,我觉得OP的意思是,如果我们有5个分区,发送10条消息,那么偏移量是否从0开始,到9结束?或者偏移量是0,5个分区中的每一个都是1?生产者不为消息分配偏移量。生产者只发送一条消息,代理使用下一个可用的偏移量将消息“附加”到分区(这是一个日志)。当然,当使用者使用该消息时,它将获得相同的消息偏移量,因为它在分区中的位置相同。最后,不跨分区分配偏移量。因此,在您的示例中(5个分区,发送10条消息),它们将在每个分区中获得偏移量0和1(当然,假设您使用的是默认的循环分区)。