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即可。
上一篇:sleep与wait的区别
相关文章
-
你是如何负责一个项目的?
你是如何负责一个项目的?
NEW个对象 2026-07-14
-
Java锁升级机制详解:偏向锁、轻量级锁、重量级锁是如何一步步升级的?
Java中的synchronized并不是一开始就使用重量级锁。为了减少线程竞争带来的性能损耗,HotSpot JVM设计了锁升级机制。锁会根据竞争情况经历无锁 → 偏向锁 → 轻量级锁 → 重量级锁的升级过程。锁只能升级不能降级,从而保证线程安全并提高系统吞吐量。
NEW个对象 2026-06-10
-
Java泛型super与extend的区别
? extends T子类限定,被其修饰的对象只能进行读取操作,不能增删。 ? super T超类限定,被其修饰的对象只能进行增删操作,不能读取。
NEW个对象 2025-01-07
NEW个对象
JAVA是世界上最好的语言