文章目录

  • 生产者问题
  • 消费者问题
  • 问题总结
  • 解决方案

生产者问题

Producer发送消息到队列,分区Leader收到消息后返回ACK给Producer,表示接收成功,此时可以继续发送下一笔消息。

Kafka提供了3种不同级别的ACK机制:

  • 0:Leader收到消息后立刻返回给Producer,消息可能还没刷盘,也还没有同步给Follower。此时如果Leader挂掉,消息就丢失了。
  • 1:Leader将消息写入磁盘后,立刻返回ACK给Producer,消息可能还没同步Follower。此时如果Leader挂掉,选举新的Follower成为主分区,因为刚才没同步成功,所以消息丢失。
  • -1:Leader将消息写入磁盘,并且同步给所有Follower,此时再返回ACK。这个方案也存在一个问题,如果在Leader准备返回ACK的时候挂掉,Producer没收到ACK认定为发送失败。此时又有2种情况
    (1)开启重试:会导致队列收到2条重复的消息,此时需要Consumer端保证消费幂等,后面会介绍
    (2)不开启重试(不推荐

Kafka消息丢失、重复消费的解决方案相关推荐

  1. 微服务 消息中间件kafka消息丢失问题

    微服务 消息中间件kafka消息丢失问题 1. kafka消息丢失概述 1.1 kafka概述 1.2 kafka架构 1.3 kafka问题 2. kafka消息传递语义 3. kafka消息丢失问 ...

  2. 面试官问:消息被重复消费,怎么避免?有什么好的解决方案?

    欢迎关注方志朋的博客,回复"666"获面试宝典 消息中间件是分布式系统常用的组件,无论是异步化.解耦.削峰等都有广泛的应用价值. 我们通常会认为,消息中间件是一个可靠的组件--这里 ...

  3. 面试官:给我一个避免消息重复消费的解决方案?

    欢迎关注方志朋的博客,回复"666"获面试宝典 消息中间件是分布式系统常用的组件,无论是异步化.解耦.削峰等都有广泛的应用价值. 我们通常会认为,消息中间件是一个可靠的组件--这里 ...

  4. kafka消息丢失解决方案

    目录 一.生产端数据丢失 二.存储端消息丢失 三.消费端数据丢失 四.小结 一条消息从生产到消费完成这个过程,可以划分三个阶段,为了方便描述,我给每个阶段分别起了个名字. 生产阶段: 在这个阶段,从消 ...

  5. Kafka 心跳机制 重复消费

    kafka 心跳机制 Kafka是通过心跳机制来控制消费超时,心跳机制对于消费者客户端来说是无感的,它是一个异步线程,当我们启动一个消费者实例时,心跳线程就开始工作了.心跳超时会导致消息重复消费. 在 ...

  6. kafka 如何避免重复消费

    为什么会出现重复消费 1.kafka是通过offset来标记消费的.默认情况下,消费完成后会自动提交offset,避免重复消费. Kafka消费端的自动提交逻辑有一个默认的5秒间隔,也就是说在5秒之后 ...

  7. 用redis解决消息队列重复消费问题

    重复消费问题: 为了解决消费端因为种种原因而造成的消息丢失问题,我们都知道根源在于因为RabbitMQ的自动ack机制,所以为了避免以上问题,我们会选中手动ack,以确保消息不会因为某些原因而丢失. ...

  8. 什么?搞不定Kafka重复消费?

    来自:架构之美 前言 今天我们聊一个话题,这个话题大家可能在面试过程中,或者是工作当中经常遇到 ????如何保证 Kafka 消息不重复消费?我们在做开发的时候为了程序的健壮性,在使用 Kafka 的 ...

  9. 三张表有重复字段_什么?搞不定Kafka重复消费?

    点戳蓝字"架构之美"关注我们哦! 前言 今天我们聊一个话题,这个话题大家可能在面试过程中,或者是工作当中经常遇到 ?如何保证 Kafka 消息不重复消费?我们在做开发的时候为了程序 ...

最新文章

  1. 3位物理学家获基础物理学特别突破奖
  2. 漫步者蓝牙只有一边有声音_漫步者Dreampods新品体验,蓝牙耳机黑科技来了
  3. vue组件间的传值方式及方法调用汇总
  4. 基于.NET Core的简单,跨平台,模块化的电子商务系统-SimplCommerce
  5. C语言const关键字—也许该被替换为readolny
  6. 程序闪退怎么运行_苹果应用程序崩溃闪退怎么办?如何解决苹果设备的软故障?...
  7. arm linux sms,基于arm处理器的手机短消息加密系统 encryption system for sms based on arm.pdf...
  8. 大白话,讲编程。前端君又回来了!
  9. Android 系统(98)---Android app 在线更新那点事儿(适配Android6.0、7.0、8.0)
  10. jdbc至sql server的两种常见方法
  11. 波段顶底 tdx 副图指标
  12. CISCO 路由器的E1模块配置指南
  13. python revit二次开发_Revit怎么二次开发?Revit开发问题汇总
  14. 二进制 文件 读入_数据挖掘--SPSS?Modeler数据的读入
  15. 【21.09-21.10】近日Paper Quichthrough汇总
  16. 面试:1.C#中的委托是什么?事件是一种委托吗?
  17. C#操作Excel之复制一行并插入下方(确保插入的新行与上一行格式相同)
  18. fatal The remote end hung up unexpectedly
  19. 哈尔滨校区学员扫码绑定教练、签到、签退、评价说明
  20. 积分制管理系统:添加员工

热门文章

  1. 释疑の采购订单的批量修改
  2. SAP系统与外部系统的三种接口形式
  3. SAP-ABAP程序发送邮件
  4. SAP alv 去掉标准按钮
  5. 这个搞定系统监控的妙招,不来学可惜了
  6. BI工具升级动态增量新功能,让大数据量入集市更便捷
  7. 骑手困在系统里,网友困在回应里,而王兴正在刷饭否
  8. 位居行业第一,智能投影品牌坚果迎来3C数码零售行业的“扬眉曲线”?
  9. mysql binlog 回退_MYSQL Binglog分析利器:binlog2sql使用详解
  10. php入门时间,PHP入门(8)日期和时间