Kafka确保消息不丢失

Kafka确保消息不丢失

  • 生产者
  • bloker
  • 消费者

生产者

	采用ack机制:

ack确认机制设置为0,表示不等待响应,不等待borker的确认信息,最小延迟,producer无法知道消息是否发生成功,消息可能丢失,但具有最大吞吐量。

ack确认机制设置为-1,也就是让消息写入leader和所有的副本,ISR列表中的所有replica都返回确认消息。

ack确认机制设置为1,leader已经接收了数据的确认信息,replica异步拉取消息,比较折中。

ack确认机制设置为2,表示producer写partition leader和其他一个follower成功的时候,broker就返回成功,无论其他的partition follower是否写成功。

ack确认机制设置为 “all” 即所有副本都同步到数据时send方法才返回, 以此来完全判断数据是否发送成功, 理论上来讲数据不会丢失。
min.insync.replicas=1 意思是至少有1个replica返回成功,否则product异常

bloker

	采取副本机制

消费者

	利用offset。关闭自动提交位移,在消息被完整处理之后再手动提交offset。

你可能感兴趣的:(Kafka确保消息不丢失)