Kafka保证消息不丢失

Kafka保证消息不丢失

生产者发送消息到Broker丢失

设置异步发送

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

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

消息在Broker中丢失

kafka集群中存在分区机制

分区中分为leader和follower副本

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

broker确认机制

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

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

消费者接受消息丢失

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

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

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

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

解决方案

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

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

相关推荐
Vic23349 分钟前
Kafka简要介绍与快速入门示例
分布式·kafka
Lethehong2 小时前
崖山YashanDB:下一代国产分布式数据库的架构革新与行业实践
数据库·分布式·架构
遇码12 小时前
单机快速部署开源、免费的分布式任务调度系统——DolphinScheduler
大数据·运维·分布式·开源·定时任务·dolphin·scheduler
纪元A梦13 小时前
分布式锁算法——基于ZooKeeper的分布式锁全面解析
java·分布式·算法·zookeeper
小样vvv14 小时前
【分布式】Hystrix 的核心概念与工作原理
分布式·hystrix
喝醉的小喵15 小时前
分布式环境下的主从数据同步
分布式·后端·mysql·etcd·共识算法·主从复制
酷爱码16 小时前
hive相关面试题以及答案
hive·分布式
老友@16 小时前
Kafka 全面解析
服务器·分布式·后端·kafka
HongXuan-Yuan18 小时前
系统设计:高并发策略与缓存设计
java·分布式·高并发
掘了19 小时前
分布式系统中如何保证崩溃一致性?
分布式·后端·面试