kafka的副本机制

打印 上一主题 下一主题

主题 245|帖子 245|积分 735

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


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

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

  1. Properties props = new Properties();
  2. props.put("bootstrap.servers", "node1.itcast.cn:9092");
  3. props.put("acks", "all");
  4. Properties props = new Properties();
  5. props.put("bootstrap.servers", "node1.itcast.cn:9092");
  6. props.put("acks", "all");
  7. props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
  8. props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
复制代码
acks配置为0


ack为0,表现发生消息不要等到broker确认,直接发送下一条数据,性能最高,但大概存在数据丢失的情况。
acks配置为1


当生产者的ACK配置为1时,生产者会等待leader副本确认接收后,才会发送下一条数据,性能中等。
acks配置为-1或者all


ack为-1,表现等待全部副本以及将数据同步后,才会发送下一条数据,性能最慢





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

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦应逍遥

高级会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表