Kafka-消息不丢失

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

解决方案:

① 设置异步发送消息

② 设置消息重试

  1. 消息在Brocker中存储丢失

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

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

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

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

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

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

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

相关推荐
谢亮_vipxieliang1 小时前
Spring Cloud 服务治理入门:注册发现、配置中心、网关限流、熔断降级与分布式一致性方案
分布式·spring·spring cloud
樱花落木兰10 小时前
分布式登录实战:Session 会话共享改造,Redis 存储用户登录状态
java·javascript·数据库·redis·分布式·缓存
ShineWinsu10 小时前
对于Redis:Steam、Geospatial、Hyperloglog、Bitmap、Bitfield类型的解析
数据库·c++·redis·分布式·缓存·面试·zset
Flynt1 天前
Redis Cluster主节点挂了,为什么"高可用"还全员掉线?我把三次kill的记录翻出来了
数据库·redis·分布式
JosieBook1 天前
【数据库】MySQL 实战精通系列 · 第10篇:分库分表与分布式事务实战
数据库·分布式·mysql
梦帮科技1 天前
vLLM / TensorRT-LLM 极限推理:PagedAttention 细粒度物理页表管理与连续批处理(Continuous Batching)实战
数据结构·人工智能·分布式·python·深度学习·算法·vllm
用户1494484813201 天前
同为消息队列,RocketMQ 和 Kafka 的底层设计差在哪?
kafka
Frank_refuel2 天前
分布式RPC框架实战(二):服务端模块划分与底层设计
分布式·网络协议·rpc
开开心心就好2 天前
办公软件卸载不干净?专用工具一键清残留
java·前端·人工智能·智能手机·kafka·excel·memcache
mftang2 天前
EtherCAT协议:从“飞读飞写”机制到分布式时钟同步的实时以太网架构深度解析
分布式·架构·ethercat·分布式时钟·从站控制器