今天面試總結,關於kafka 保證消息不丟失問題


kafka 保證消息不丟失。原因如下有:

1)生產者如果異步發送,會造成消息丟失,發送的過程中kafka會先把消息緩存起來。然后批量發送。 若批量發送之前client宕機會造成消息丟失。生產者不丟失消息需要同步發送

2)kafka服務器默認異步刷盤,先刷到系統頁緩存,然后再刷新到日志文件。頁緩存的數據可能會丟失。解決可以同步的方式刷盤,但是這樣效率很低,比rabbitmq低。

 對於我說的第二點有點問題。在配置ack=all , min.insync.replas > 1 是可以保證頁緩存數據不丟失。

3)關閉自動提交

4)unclean.leader = false

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM