Kafka保证消息不丢失

Kafka保证消息不丢失

生产者发送消息到Broker丢失

设置异步发送

回调方法中的参数Exception e如果为空

代表发送成功,如果不为空代表发送失败出现异常

消息在Broker中丢失

kafka集群中存在分区机制

分区中分为leader和follower副本

leader负责读写,而follower只负责数据同步

broker确认机制

生产者向broker发送消息存在发送确认机制acks

acks=0,生产者不会等待broker响应
acks=1(默认),只要leader收到消息就会响应
acks=all,只有全部节点都收到消息,才会响应

消费者接受消息丢失

每一个分区只能由一个消费者进行消费,分区中根据偏移量记录消费的进度,按照偏移量进行消费

每个消费者会自动按时提交偏移量

如果在提交之前宕机,就有可能出现重复消费

如果在消费之前提交然后宕机,就有可能出现丢失数据的情况

解决方案

禁用自动提交偏移量,改为手动提交

可以使用同步提交,异步提交或者同步+异步的方式组合提交

相关推荐
Mephisto.java29 分钟前
【大数据学习 | kafka高级部分】kafka的kraft集群
大数据·sql·oracle·kafka·json·hbase
Mephisto.java31 分钟前
【大数据学习 | kafka高级部分】kafka的文件存储原理
大数据·sql·oracle·kafka·json
yx9o1 小时前
Kafka 源码 KRaft 模式本地运行
分布式·kafka
Gemini19952 小时前
分布式和微服务的区别
分布式·微服务·架构
G丶AEOM2 小时前
分布式——BASE理论
java·分布式·八股
P.H. Infinity8 小时前
【RabbitMQ】03-交换机
分布式·rabbitmq
java1234_小锋9 小时前
讲讲RabbitMQ 性能优化
kafka
龙哥·三年风水10 小时前
群控系统服务端开发模式-应用开发-个人资料
分布式·php·群控系统
funnyZpC12 小时前
quartz集群增强版🎉
java·分布式·开源·集群·定时任务
明达技术12 小时前
工业4.0时代下的分布式IO模块
分布式