Kafka保证消息不丢失

Kafka保证消息不丢失

生产者发送消息到Broker丢失

设置异步发送

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

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

消息在Broker中丢失

kafka集群中存在分区机制

分区中分为leader和follower副本

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

broker确认机制

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

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

消费者接受消息丢失

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

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

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

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

解决方案

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

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

相关推荐
predisw17 分钟前
Kafka broker 写消息的过程
分布式·kafka
Wo3Shi4七1 小时前
消息不丢失:生产者收到写入成功响应后消息一定不会丢失吗?
后端·kafka·消息队列
找不到、了2 小时前
深入学习RabbitMQ队列的知识
分布式·rabbitmq
showmethetime2 小时前
RabbitMQ实用技巧
分布式·rabbitmq·ruby
KwokGuardian3 小时前
Seata 分布式事务 AT 模式
分布式
不爱学英文的码字机器4 小时前
[Git] 分布式版本控制 & 远程仓库协作
分布式·git
火龙谷5 小时前
【hadoop】Davinci数据可视化工具的安装部署
大数据·hadoop·分布式
Wo3Shi4七5 小时前
消息积压:业务突然增长,导致消息消费不过来怎么办?
后端·kafka·消息队列
慧一居士10 小时前
ShardingSphere-JDBC 与 Sharding-JDBC 的对比与区别
分布式·系统架构
隰有游龙13 小时前
hadoop集群启动没有datanode解决
大数据·hadoop·分布式