12.7.2.2. 数据持久性
您可以使用消息发送确认,应用更大的数据持久性,以最大程度降低消息丢失的可能性。
# ...
acks=all 1
# ...
- 1
- 指定
acks=all
会强制分区领导将消息复制到一定数量的跟随者,然后确认消息请求已成功收到。由于附加检查,acks=all
会增加生产者发送消息和接收确认之间的延迟。
在将确认发送到生产者之前,需要将消息附加至其日志中的代理数量由主题的 min.insync.replicas
配置决定。典型的起点是将主题复制因数为 3,其他代理上有两个内联副本。在这种配置中,如果单个代理不可用,生产者可以继续不受影响。如果第二个代理不可用,生产者将不会收到确认并且无法生成更多消息。
支持 acks=all 的主题
配置
# ...
min.insync.replicas=2 1
# ...
- 1
- 使用
2
内同步的副本。默认值为1
。
注意
如果系统失败,则缓冲区中存在不正确的数据丢失的风险。