转载:https://baijiahao.baidu.com/s?id=1583469327946027281&wfr=spider&for=pc

消息发送方式

想清楚Kafka发送的消息是否丢失,需要先了解Kafka消息的发送方式。

Kafka消息发送分同步(sync)、异步(async)两种方式

默认是使用同步方式,可通过producer.type属性进行配置;

Kafka保证消息被安全生产,有三个选项分别是0,1,-1

通过request.required.acks属性进行配置:

0代表:不进行消息接收是否成功的确认(默认值);

1代表:当Leader副本接收成功后,返回接收成功确认信息;

-1代表:当Leader和Follower副本都接收成功后,返回接收成功确认信息;

六种发送场景

两个维度相交,生成六种情况,如下图:

消息丢失的场景

网络异常

acks设置为0时,不和Kafka集群进行消息接受确认,当网络发生异常等情况时,存在消息丢失的可能;

客户端异常

异步发送时,消息并没有直接发送至Kafka集群,而是在Client端按一定规则缓存并批量发送。在这期间,如果客户端发生死机等情况,都会导致消息的丢失;

缓冲区满了

异步发送时,Client端缓存的消息超出了缓冲池的大小,也存在消息丢失的可能;

Leader副本异常

acks设置为1时,Leader副本接收成功,Kafka集群就返回成功确认信息,而Follower副本可能还在同步。这时Leader副本突然出现异常,新Leader副本(原Follower副本)未能和其保持一致,就会出现消息丢失的情况;

以上就是消息丢失的几种情况,在日常应用中,我们需要结合自身的应用场景来选择不同的配置。

想要更高的吞吐量就设置:异步、ack=0;想要不丢失消息数据就选:同步、ack=-1策略

附:Kafka备份策略,不理解的可以看我的另一篇文章《Kafka消息的备份策略》

一个全栈程序猿的经验分享,大家觉得有收获的请在评论中给个鼓励,不足之处也请多多指出;最后预祝大家开心永在,感谢您的关注。

转载于:https://www.cnblogs.com/myf008/p/8546411.html

kafka消息会不会丢失相关推荐

  1. Kafka消息投递语义-消息不丢失,不重复,不丢不重

    转载:https://3gods.com/bigdata/Kafka-Message-Delivery-Semantics.html 介绍 kafka支持3种消息投递语义: At most once- ...

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

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

  3. 2021年大数据Kafka(八):Kafka如何保证数据不丢失

    全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Kafka如何保证数据不丢失 一.如何保证生产者数据不丢失 ...

  4. kafka消息服务的producer、broker、consumer的配置

    2019独角兽企业重金招聘Python工程师标准>>> server.properties配置: server.properties中所有配置参数说明(解释)如下列表: 参数 说明( ...

  5. 为什么要使用kafka消息队列

    1.为什么要使用 kafka?为什么要使用消息队列? 缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafk ...

  6. kafka消息消费有延迟_简易实现kafka延迟消息

    背景 当前业务存在以下场景:在一个事务内的最后一步是发送kafka消息,消费端收到通知后读取数据并做处理.但是由于kafka几乎是即时收到消息,导致偶尔出现"在发完kafka和提交事务的间隙 ...

  7. 19 kafka消息队列

    文章目录 19 kafka消息队列 一.kafka介绍 1.消息队列基本介绍 2.常用的消息队列介绍 3.消息队列的应用场景 4.消息队列的两种模式 5.kafka的基本介绍 6.kafka的架构介绍 ...

  8. 10、Kafka 消息订阅系统

    1.Kafka 简介 Kafka 是一个高吞吐.分布式.基于发布订阅的消息系统,利用 Kafka 技术可在廉价 PCServer 上搭建起大规模消息系统. Kafka 和其他组件比较,具有消息持久化. ...

  9. Kafka 消息可靠性

    在 Kafka 工作机制 一文提及了 Kafka 消息的不可靠性.本文就 Kafka 消息的三种不可靠性(重复.丢失.乱序),分析它们出现的内部原因和解决办法. 作者:王克锋 出处:https://k ...

最新文章

  1. Google平台搭建虚机
  2. CSS3实现多样的边框效果
  3. 【利好工具】JavaScript及时运行调试工具
  4. 使用视频作为网页背景的技术探讨
  5. 阿里马涛:重新定义云时代的开源操作系统 | 人物志
  6. 用python写helloworld_使用python写一个Hello World
  7. 第十八章——基于策略的管理(1)——评估数据库属性
  8. Nova reboot 和 lock 操作 - 每天5分钟玩转 OpenStack(32)
  9. PDF转WORD乱码怎么办
  10. python绘制小狗_SAI教程:绘画小狗手绘板教程
  11. 网站关键词密度设置与优化
  12. Context 是什么意思
  13. HTML的img插入本地图片
  14. 【爆品】馥兰朵想买找谁?代理能月入过万吗?
  15. eval函数 c语言,matlab中eval函数的用法
  16. 互联网发展新篇章 下一波红利在哪里?
  17. supervisor启动进程时报错“gave up: monitor entered FATAL state, too many start retries too quickly”
  18. 3U VPX接口卡学习资料:基于FMC接口的Kintex-7 XC7K325T PCIeX8 3U VPX接口卡288
  19. CMDB(运维自动化)
  20. 《游戏学习》JAVA版坦克大战课程设计及源码

热门文章

  1. 2022-2028年中国水性密封胶行业市场调查研究及未来趋势预测报告
  2. Redis 高级特性(2)—— 发布 订阅模式
  3. c++动态分配二维数组
  4. 工作如果没有方法,光靠苦力是不行的
  5. 微服务架构必备的几点知识
  6. Java中对象引用的机制,及特点
  7. LeetCode简单题之石头与宝石
  8. PyTorch数据加载处理
  9. Thrift协议与传输选择
  10. MySQL下载与安装教程以及环境变量配置