梦应逍遥 发表于 2024-6-29 06:08:44

kafka的副本机制

目录
Producer的ACKs参数
配置
acks配置为0
acks配置为1
acks配置为-1或者all

副本的目的就是冗余备份,当某个Broker上的分区数据丢失时,依然可以保障数据可用。因为在其他的Broker上的副本是可用的。
Producer的ACKs参数

对副本关系较大的是,producer配置的ack参数了,acks参数表现当生产者生产消息的时候写入到副本的要求严格程度。它决定了生产者如何再性能和可靠性之间取舍。
配置

Properties props = new Properties();
props.put("bootstrap.servers", "node1.itcast.cn:9092");
props.put("acks", "all");
Properties props = new Properties();
props.put("bootstrap.servers", "node1.itcast.cn:9092");
props.put("acks", "all");
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
acks配置为0

https://img-blog.csdnimg.cn/direct/a181583cdbe841e0b86ed402e6c276a1.png
ack为0,表现发生消息不要等到broker确认,直接发送下一条数据,性能最高,但大概存在数据丢失的情况。
acks配置为1

https://img-blog.csdnimg.cn/direct/5bc066f767e14990be7773e279af6dd0.png
当生产者的ACK配置为1时,生产者会等待leader副本确认接收后,才会发送下一条数据,性能中等。
acks配置为-1或者all

https://img-blog.csdnimg.cn/direct/4bf2ed8f38b64a36aae8e2bad3708048.png
ack为-1,表现等待全部副本以及将数据同步后,才会发送下一条数据,性能最慢





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: kafka的副本机制