Kafka丢数据的情况

1.消费端弄丢了数据
消费者自动提交offset会丢数据,只要关闭自动提交 offset,在处理完之后自己手动提交 offset,就可以保证数据不会丢。
2.Kafka 弄丢了数据
Kafka宕机重新选举leader的时候,要是 follower没有及时同步数据,就会丢数据。

在 Kafka 服务端设置 min.insync.replicas 最小同步副本参数:这个值必须大于 1,这个是要求一个 leader 至少感知到有至少一个 follower 还跟自己保持联系,这样才能确保 leader 挂了还有一个 follower 。
在生产者 端设置 acks=-1,要求每条数据都写入完成后,才认为是写入成功。
在 生产者 端设置 retries=MAX:这个是要求一旦写入失败,就无限重试。

3. 生产者会不会弄丢数据?
生产者在生产数据时是靠ack应答机制来传输数据的,设置 acks=-1,且起码有一个Leader和一个Follower,则一定不会丢数据。

你可能感兴趣的:(Kafka)