Kafka保证消息不丢失

Kafka保证消息不丢失

生产者发送消息到Broker丢失

设置异步发送

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

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

消息在Broker中丢失

kafka集群中存在分区机制

分区中分为leader和follower副本

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

broker确认机制

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

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

消费者接受消息丢失

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

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

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

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

解决方案

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

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

相关推荐
码熔burning2 小时前
【MQ篇】RabbitMQ初体验!
分布式·rabbitmq·消息中间件
向来痴_2 小时前
PyTorch 分布式 DistributedDataParallel (DDP)
人工智能·pytorch·分布式
小五Z3 小时前
Redis--主从复制
数据库·redis·分布式·后端·缓存
Hellc0074 小时前
完整的 .NET 6 分布式定时任务实现(Hangfire + Redis 分布式锁)
redis·分布式·.net
今天我又学废了4 小时前
Spark,从0开始配置Spark的local模式
大数据·分布式·spark
DDDiccc4 小时前
黑马商城(六)RabbitMQ
分布式·rabbitmq
码熔burning10 小时前
【MQ篇】RabbitMQ之简单模式!
分布式·rabbitmq·mq·简单模式
FLLdsj10 小时前
如何安装Spark
大数据·分布式·spark
马达加斯加D12 小时前
缓存 --- 内存缓存 or 分布式缓存
分布式·缓存
程序猿阿伟16 小时前
《分布式软总线架构下,设备虚拟化技术的深度剖析与优化策略》
分布式·架构