当Acks = 0时,在领导者与追随者同步之前,Kafka消费者可以立即读取消息吗?

问题描述 投票:0回答:1
如果我在卡夫卡(Kafka)设置

ACKS=0,我的制片人将互相写消息,而无需等待领导者经纪人或副本/关注者的任何确认。但是,我的问题是,消费者是否可以在领导者与追随者同步之前开始阅读这些消息。 特别是,如果生产者不断发送消息,消费者可以立即阅读它们,或者领导者需要先与追随者同步,然后再在消费者访问消息之前? 你能指出我指向解决这个问题的相关卡夫卡文档吗?

正如您说的那样,如果ACK设置为0,则制作人将不会等待经纪人的回复,并且该消息将立即供消费者阅读。简而言之,ACK的价值意味着“生产者应该等待收到回应?”。这些经纪人是该主题的经纪人。

到什么是同步经纪人?与复制经纪人不同,同步经纪人同步保留数据。复制的数据可以写几分钟或几个小时后写给其他经纪人,但同步经纪人并非如此。 它由

"in sync"
apache-kafka
1个回答
0
投票
对ACK也很重要,因为ACK值不能高于

min.insync.replicas

。如果您的
in.sync.replicas

是2和

ack

3,则制作人将等待经纪人直接连接并完成1个同步经纪人来完成生产过程。
简短;

当0是0时,无论
in.sync.replicas
ack
的数量如何,该消息将立即使用。
当1(默认情况下)是1(默认情况下),生产商将等待经纪人的确认。

in.sync.replicas

超过1(例如3)时,
    replication.factor
  • 必须等于或大于ACK值。生产者将等待经纪人的确认,并在ACK参数中给出总数。这些经纪人被称为“同步”经纪人。
    ACK≤In.sync.replicas≤复制。
    
    文档:
    https://docs.confluent.io/kafka/design/replication.html#in-sync-replicas-and-producer-acks
  • https://docs.confluent.io/platform/current/installation/configuration/topic-configs.html#min-insync-replicas,
    	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.