Kafka-消息不丢失

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

解决方案:

① 设置异步发送消息

② 设置消息重试

  1. 消息在Brocker中存储丢失

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

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

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

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

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

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

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

相关推荐
蒙特卡洛的随机游走15 小时前
Spark核心数据(RDD、DataFrame 和 Dataset)
大数据·分布式·spark
埃泽漫笔15 小时前
Kafka、ActiveMQ、RabbitMQ、RocketMQ 对比
kafka·rabbitmq·activemq
NO.102416 小时前
本地缓存怎么在分布式环境下保持一致性
分布式·缓存
superlls16 小时前
(定时任务)接上篇:定时任务的分布式执行与分布式锁使用场景
java·分布式·后端
回家路上绕了弯17 小时前
高并发后台系统设计要点:从流量削峰到低延迟的实战指南
分布式·后端
Lansonli18 小时前
大数据Spark(六十九):Transformation转换算子intersection和subtract使用案例
大数据·分布式·spark
太阳伞下的阿呆18 小时前
kafka与zero-copy
分布式·kafka
没有bug.的程序员19 小时前
云原生与分布式架构的完美融合:从理论到生产实践
java·分布式·微服务·云原生·架构
JanelSirry19 小时前
分布式和微服务的区别是什么?
分布式·微服务·架构
Jabes.yang1 天前
Java面试大作战:从缓存技术到音视频场景的探讨
java·spring boot·redis·缓存·kafka·spring security·oauth2