消息发送方式

想清楚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消息的备份策略》

kafka消息会不会丢失?为什么?看了这个你就清楚了相关推荐

  1. kafka消息会不会丢失

    转载:https://baijiahao.baidu.com/s?id=1583469327946027281&wfr=spider&for=pc 消息发送方式 想清楚Kafka发送的 ...

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

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

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

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

  4. 一文看懂Kafka消息格式的演变

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  5. 10、Kafka 消息订阅系统

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

  6. kafka 消息队列

    kafka 消息队列 kafka 架构原理 大数据时代来临,如果你还不知道Kafka那就真的out了!据统计,有三分之一的世界财富500强企业正在使用Kafka,包括所有TOP10旅游公司,7家TOP ...

  7. 聊聊 Kafka:Kafka 消息重复的场景以及最佳实践

    一.前言 上一篇我们讲了 聊聊 Kafka:Kafka 消息丢失的场景以及最佳实践,这一篇我们来说一说 Kafka 消息重复的场景以及最佳实践. 我们下面会从以下两个方面来说一下 Kafka 消息重复 ...

  8. kafka 安装使用 /springboot整合kafka /消息投递机制以及存储策略 /副本处理机制

    一.背景 1.基本信息 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流 ...

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

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

  10. kafka消息的分发与消费(一)

    关于 Topic 和 Partition: Topic: 在 kafka 中,topic 是一个存储消息的逻辑概念,可以认为是一个消息集合.每条消息发送到 kafka 集群的消息都有一个类别.物理上来 ...

最新文章

  1. android Service 的使用
  2. vuejs基础玩法(基础知识,不喜勿喷!)
  3. 无法启动MYSQL服务”1067 进程意外终止”解决的方法
  4. 【数字信号处理】序列傅里叶变换 ( 狄义赫利条件 | 序列傅里叶变换定义 )
  5. Hibernate 实体映射类的状态值自动转换
  6. Py之wxPython:利用wxPython设计CMD软件窗口进行交互可视化
  7. Delphi中类型转换函数
  8. 1218. 最长定差子序列
  9. mysql infobright 缺点_infobright、mongodb优劣以及适用范围
  10. 《iOS 6高级开发手册(第4版)》——1.8节使用加速度移动屏幕上的对象
  11. Python 读取文本文件编码错误解决方案(未知文本文件编码情况下解决方案)
  12. 快速开发字段很多的MIS表
  13. 考虑实时安全优化的自学习自适应交通信号控制
  14. python VTK画3D方框
  15. poj 2387 最短路 spfa 实现
  16. Pyrene-PEG-NHS Ester,NHS-PEG-Pyrene
  17. WEB基础之:创建表格
  18. 如何利用Social Listening从社会化媒体中“提炼”有价值的信息?
  19. 服务器开机显示f1 f2,开机提示按F1/F2才能进入系统的解决方法
  20. HTTP缓存的深入介绍:Cache-Control和Vary

热门文章

  1. 踩过坑才懂:如何快速打造技术产品
  2. 地图看世界,给整个世界画一条“胡焕庸线”
  3. 中讯环亚开始招大客户销售啦
  4. python常用字符串方法_python基础之字符串常用方法
  5. 【数学建模】基于matlab贫困生评测系统【含Matlab源码 1744期】
  6. 【数字信号】基于matlab GUI可编程电音合成器【含Matlab源码 872期】
  7. seata 集群_阿里巴巴和蚂蚁金服联手搞事情: Seata 我们走~
  8. 通用大数据架构-_通用做法-第4部分
  9. python xml第三方库_我应该使用哪个python XML库?
  10. npm 编译慢_如何有效提升快应用(Webpack)编译速度