kafka消息的可靠性
生产者ACK+记录消息失败重试
send(msg,callback)
再callback进行处理失败的消息的持久化,然后开定时任务重试
保证msg到达 broker
本质其实就是记了再发,先记日志再发送
副本同步+落盘机制
unclean.leader.election.enable = false,保证所有副本同步。
同时broker开启 同步刷盘,直接写入磁盘,而不是写入 page cache
消费者 Consume可靠消费+重试机制
开启手动ACK,拉取到本地的消息成功消费后,再提交ACK
设置 enable.auto.commit 为 false
kafka broker端,消息被消费后,不会立马被删除,而是定时删除,所以要保证Consumer消费成功手
动ACK