kafka消息会不会丢失?为什么?看了这个你就清楚了
消息发送方式
想清楚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消息会不会丢失?为什么?看了这个你就清楚了相关推荐
- kafka消息会不会丢失
转载:https://baijiahao.baidu.com/s?id=1583469327946027281&wfr=spider&for=pc 消息发送方式 想清楚Kafka发送的 ...
- 微服务 消息中间件kafka消息丢失问题
微服务 消息中间件kafka消息丢失问题 1. kafka消息丢失概述 1.1 kafka概述 1.2 kafka架构 1.3 kafka问题 2. kafka消息传递语义 3. kafka消息丢失问 ...
- Kafka消息投递语义-消息不丢失,不重复,不丢不重
转载:https://3gods.com/bigdata/Kafka-Message-Delivery-Semantics.html 介绍 kafka支持3种消息投递语义: At most once- ...
- 一文看懂Kafka消息格式的演变
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...
- 10、Kafka 消息订阅系统
1.Kafka 简介 Kafka 是一个高吞吐.分布式.基于发布订阅的消息系统,利用 Kafka 技术可在廉价 PCServer 上搭建起大规模消息系统. Kafka 和其他组件比较,具有消息持久化. ...
- kafka 消息队列
kafka 消息队列 kafka 架构原理 大数据时代来临,如果你还不知道Kafka那就真的out了!据统计,有三分之一的世界财富500强企业正在使用Kafka,包括所有TOP10旅游公司,7家TOP ...
- 聊聊 Kafka:Kafka 消息重复的场景以及最佳实践
一.前言 上一篇我们讲了 聊聊 Kafka:Kafka 消息丢失的场景以及最佳实践,这一篇我们来说一说 Kafka 消息重复的场景以及最佳实践. 我们下面会从以下两个方面来说一下 Kafka 消息重复 ...
- kafka 安装使用 /springboot整合kafka /消息投递机制以及存储策略 /副本处理机制
一.背景 1.基本信息 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流 ...
- 2021年大数据Kafka(八):Kafka如何保证数据不丢失
全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Kafka如何保证数据不丢失 一.如何保证生产者数据不丢失 ...
- kafka消息的分发与消费(一)
关于 Topic 和 Partition: Topic: 在 kafka 中,topic 是一个存储消息的逻辑概念,可以认为是一个消息集合.每条消息发送到 kafka 集群的消息都有一个类别.物理上来 ...
最新文章
- android Service 的使用
- vuejs基础玩法(基础知识,不喜勿喷!)
- 无法启动MYSQL服务”1067 进程意外终止”解决的方法
- 【数字信号处理】序列傅里叶变换 ( 狄义赫利条件 | 序列傅里叶变换定义 )
- Hibernate 实体映射类的状态值自动转换
- Py之wxPython:利用wxPython设计CMD软件窗口进行交互可视化
- Delphi中类型转换函数
- 1218. 最长定差子序列
- mysql infobright 缺点_infobright、mongodb优劣以及适用范围
- 《iOS 6高级开发手册(第4版)》——1.8节使用加速度移动屏幕上的对象
- Python 读取文本文件编码错误解决方案(未知文本文件编码情况下解决方案)
- 快速开发字段很多的MIS表
- 考虑实时安全优化的自学习自适应交通信号控制
- python VTK画3D方框
- poj 2387 最短路 spfa 实现
- Pyrene-PEG-NHS Ester,NHS-PEG-Pyrene
- WEB基础之:创建表格
- 如何利用Social Listening从社会化媒体中“提炼”有价值的信息?
- 服务器开机显示f1 f2,开机提示按F1/F2才能进入系统的解决方法
- HTTP缓存的深入介绍:Cache-Control和Vary
热门文章
- 踩过坑才懂:如何快速打造技术产品
- 地图看世界,给整个世界画一条“胡焕庸线”
- 中讯环亚开始招大客户销售啦
- python常用字符串方法_python基础之字符串常用方法
- 【数学建模】基于matlab贫困生评测系统【含Matlab源码 1744期】
- 【数字信号】基于matlab GUI可编程电音合成器【含Matlab源码 872期】
- seata 集群_阿里巴巴和蚂蚁金服联手搞事情: Seata 我们走~
- 通用大数据架构-_通用做法-第4部分
- python xml第三方库_我应该使用哪个python XML库?
- npm 编译慢_如何有效提升快应用(Webpack)编译速度