Kafka-消息不丢失

  1. 生产者发送消息到Brocker时丢失

解决方案:

① 设置异步发送消息

② 设置消息重试

  1. 消息在Brocker中存储丢失

解决方案: 设置发送送确认机制acks

|------------|-------------------------------------------|
| 确认机制 | 说明 |
| acks=0 | 生产者在成功写入消息之前不会等待任何来自服务器的响应,消息有丢失的风险,但是速度快 |
| acks=1(默认) | 只要集群首领节点收到消息,生产者就会收到一个来自服务器的成功响应 |
| acks=all | 只有当所有参与赋值的节点全部收到消息时,生产者才会收到一个来自服务器的成功响应 |

  1. 消费者从Brocker接收消息丢失

Kafka中的分区机制指的是将每隔主题划分成多个分区(Partition)。

topic分区中消息只能由消费者组中的唯一一个消费者处理,不同的分区分配给同组内的不同的消费者。

消费者默认是自动按期提交已经消费的偏移量,默认是每隔5s提交一次。如果出现重平衡现象,可能出现重复消费或丢失数据。重平衡:某一个消费者服务宕机,但是其实际消费的消息和已经提交的偏移量不一致。

解决方案:禁用自动提交偏移量,改为手动。可以同步提交、异步提交、同步异步配合使用。

相关推荐
笨蛋不要掉眼泪15 小时前
RabbitMQ消息队列:发送者的可靠性
java·分布式·rabbitmq
cyadyx16 小时前
RabbitMQ 使用说明文档
分布式·rabbitmq
布鲁飞丝16 小时前
kafka 副本集设置和理解
分布式·kafka
songgz17 小时前
ZenithVM:从虚拟机到分布式操作系统内核
jvm·分布式·vm
番茄炒鸡蛋加糖17 小时前
分布式 ID
分布式
Francek Chen19 小时前
【大数据处理与分析】实验5:MapReduce初级编程实践
大数据·hadoop·分布式·mapreduce
独行侠影a1 天前
APScheduler+Redis 分布式定时任务:解决多实例任务重复执行
数据库·redis·分布式
香菜TTT1 天前
Kafka_深度解析_从架构原理到生产实践
分布式·架构·kafka·linq
wWYy.2 天前
基于Raft分布式Kv存储:RPC
分布式·rpc
zcmodeltech2 天前
智能矿井沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的感知-传输-控制一体化方案
服务器·数据库·分布式·stm32·单片机·嵌入式硬件