Kafka保证消息不丢失

Kafka保证消息不丢失

生产者发送消息到Broker丢失

设置异步发送

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

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

消息在Broker中丢失

kafka集群中存在分区机制

分区中分为leader和follower副本

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

broker确认机制

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

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

消费者接受消息丢失

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

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

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

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

解决方案

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

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

相关推荐
雨中飘荡的记忆2 小时前
Kafka入门:从零开始掌握消息队列
kafka
txinyu的博客2 小时前
HTTP服务实现用户级窗口限流
开发语言·c++·分布式·网络协议·http
独自破碎E2 小时前
RabbitMQ中的Prefetch参数
分布式·rabbitmq
深蓝电商API2 小时前
Scrapy+Rredis实现分布式爬虫入门与优化
分布式·爬虫·scrapy
indexsunny4 小时前
互联网大厂Java面试实战:Spring Boot与微服务在电商场景的应用解析
java·spring boot·redis·微服务·kafka·gradle·maven
回家路上绕了弯4 小时前
定期归档历史数据实战指南:从方案设计到落地优化
分布式·后端
rchmin5 小时前
Distro与Raft协议对比分析
分布式·cap
小辉笔记5 小时前
kafka原理总结
分布式·kafka
实战项目5 小时前
分布式协作入侵检测系统的报警信息管理
分布式
无心水8 小时前
【分布式利器:腾讯TSF】10、TSF故障排查与架构评审实战:Java架构师从救火到防火的生产哲学
java·人工智能·分布式·架构·限流·分布式利器·腾讯tsf