ACKS=0,我的制片人将互相写消息,而无需等待领导者经纪人或副本/关注者的任何确认。但是,我的问题是,消费者是否可以在领导者与追随者同步之前开始阅读这些消息。 特别是,如果生产者不断发送消息,消费者可以立即阅读它们,或者领导者需要先与追随者同步,然后再在消费者访问消息之前? 你能指出我指向解决这个问题的相关卡夫卡文档吗?
正如您说的那样,如果ACK设置为0,则制作人将不会等待经纪人的回复,并且该消息将立即供消费者阅读。简而言之,ACK的价值意味着“生产者应该等待收到回应?”。这些经纪人是该主题的经纪人。
到什么是同步经纪人?与复制经纪人不同,同步经纪人同步保留数据。复制的数据可以写几分钟或几个小时后写给其他经纪人,但同步经纪人并非如此。 它由
"in sync"
min.insync.replicas
。如果您的
in.sync.replicas
是2和ack
3,则制作人将等待经纪人直接连接并完成1个同步经纪人来完成生产过程。简短;
当0是0时,无论
in.sync.replicas
或
ack
的数量如何,该消息将立即使用。当1(默认情况下)是1(默认情况下),生产商将等待经纪人的确认。 当
in.sync.replicas
replication.factor
ACK≤In.sync.replicas≤复制。
文档:https://docs.confluent.io/kafka/design/replication.html#in-sync-replicas-and-producer-acks