kafka 数据丢失问题,及如何保证1. 数据丢失:
a.acks=1 的时候(只保证写入 leader 成功),如果刚好 leader 挂了.数据会丢失. b. Acks=0 的时候, 使用异步模式的时候,该模式下 kafka 无法保证消息,有可能会丢。2. brocker 如何保证不丢失:
a.acks=all : 所有副本都写入成功并确认. b. retries = 一个合理值
c.min.insync.replicas=2 消息至少要被写入到这么多副本才算成功.
36d. unclean.leader.election.enable=false 关闭 unclean leader 选举,即不允许非ISR中的副本被选举为 leader,以避免数据丢失. 3. Consumer 如何保证不丢失
a.如果在消息处理完成前就提交了 offset,那么就有可能造成数据的丢失. b. enable.auto.commit=false 关闭自动提交 offset
c.处理完数据之后手动提交.