首页 > 项目 > 当前页面

Kafka 是否会弄丢数据?

2025-01-11 NEW个对象

当然会

kafka分为生产者、服务端、消费端

生产者如何弄丢数据:

生产者已经发送了,但是服务端没有收到,或者收到了以后,没有同步给跟随者,然后宕机了。

如何解决:将参数acks=all即可,

leader收到消息后,会将消息同步到其它的跟随者。

如果发送失败一直重试即可。

服务端丢失消息:

主节点宕机,此时会再选一个新的主节点,如果没有同步,那么新的节点就没有该消息。

配置参数:

1、topic配置replication.factor > 2,代表每个 partition 必须有至少 2 个副本
2、服务端min.insync.replicas>1,至少有一个跟随者与leader保持联系。
3、生产端acks=all,数据必须写入每个replicas才算成功
4、生产端配置retries=MAX,只要写入失败就一直重试。

消费端丢失:

手动提交offset即可。

相关文章

NEW个对象 NEW个对象
JAVA是世界上最好的语言