如何保证消息不丢

其实就只有一种,重试。我们不能保证100%不丢,还有不可能完全依靠中间件的可靠性。

kafka有哪些丢消息的场景?分别怎么处理

1.发消息可能会丢,失败重试

2.broker落盘可能丢,落盘默认是靠系统机制落盘,消息一开始是写入page cache。想要不丢那就配置

为立马刷盘,但性能就比较差

3.消费丢失,手动ack,一条条确认,但手动ack其实会有死循环,依靠人的功底