Kafka的ack机制
文章目Kafka的ack机制录
- 前言
- 一、ACK的三个可选值
- 1、ACK = 1 (默认)
- 2、ACK = 0
- 3、ACK = -1
前言
Kafka的ACK机制,指的是producer的消息发送确认机制,这直接影响到Kafka集群的吞吐量和消息可靠性。而吞吐量和可靠性就像硬币的两面,两者不可兼得,只能平衡。
Kafka的ACK机制是针对producer的。
保证消息的吞吐量就是producer只负责发数据,不需要得知消息是否被集群接收,这样就会有大量的数据发送到Kafka的集群中,保证了Kafka集群的吞吐量。
保证消息的可靠性就是发送消息必须保证消息存储到了集群中,producer才能发送下一个消息。
一、ACK的三个可选值
ACK有3个可选值,分别是1,0,-1 。
1、ACK = 1 (默认)
等待leader接收成功即可。
只要收到一个分区副本成功写入的通知,就认为推送消息成功了。当然,这个副本必须是leader副本,只有leader成功写入后,producer才会认为消息发送成功。
ACK = 1 的情况,producer只要收到leader写入成功的通知,就会认为消息发送成功了,但是如果leader写入成功了,没来得及将数据同步到follower节点,原本的leader就死亡了,此时消息就会丢失。
ACK的默认值就说1 。这个默认值就说吞吐量与持久性的这种方案。
2、ACK = 0
发送一次,不论leader是否接收。
producer 不管发送成不成功,只发送一次就不再发送了。
提供了最低的延迟,保证了最大的吞吐量,但持久性最弱,无法保证broker是否接收到消息,无法确定leader是否死亡,也无法保证leader接收到消息后是否发送给follower。
3、ACK = -1
需要等待leader将消息同步给follower。
producer只有收到分区所有副本的成功写入的通知才认为推送消息成功了。
Kafka的ack机制相关推荐
- kafka之ack机制
ack概述 kafka的ack机制,指的是producer的消息发送确认机制,在不同的场景可以灵活的选择ack机制来配合业务,不同的ack设置对kafka集群的吞吐量和消息可靠性也会有影响. ack有 ...
- kafka 的 ack机制
一.前言 acks参数指定了必须要有多少个分区副本收到消息,生产者才认为该消息是写入成功的,这个参数对于消息是否丢失起着重要作用,该参数的配置具体如下: 二.ack = 0 acks=0,表示生产者在 ...
- 【Kafka】Kafka 实现 Exactly-once (ack机制、高水位)
文章目录 1.概述 2. ACK机制 2. HW 2.1 案例 2.1.1 第一回合 2.1.1 第2回合 2.1.3 第3回合 2.1.4 第4回合 4.exactly-once 5.事务 1.概述 ...
- Kafka 生产者数据安全(ACK机制,ACK时机,ACK应答机制,故障处理,Exactly Once)
目录 生产者数据安全 一.数据分区 图解 分区原因 分区原则 二.数据可靠性保证 ACK机制 ACK时机 ACK应答机制 故障处理 Exactly Once 语义 生产者数据安全 一.数据分区 图解 ...
- 用redis实现消息队列(实时消费+ack机制)【转】
用redis实现消息队列(实时消费+ack机制) java queue 消息队列 redis 消息队列 首先做简单的引入. MQ主要是用来: 解耦应用. 异步化消息 流量削峰填谷 目前使用的较多的有A ...
- Kafka整体结构图、Consumer与topic关系、Kafka消息分发、Consumer的负载均衡、Kafka文件存储机制、Kafka partition segment等(来自学习资料)
##1. Kafka整体结构图 Kafka名词解释和工作方式 Producer : 消息生产者,就是向kafka broker发消息的客户端. Consumer : 消息消费者,向kafka ...
- kafkaspot在ack机制下如何保证内存不溢
storm框架中的kafkaspout类实现的是BaseRichSpout,它里面已经重写了fail和ack方法,所以我们的bolt必须实现ack机制,就可以保证消息的重新发送:如果不实现ack机制, ...
- Storm的ack机制在项目应用中的坑
正在学习storm的大兄弟们,我又来传道授业解惑了,是不是觉得自己会用ack了.好吧,那就让我开始啪啪打你们脸吧. 先说一下ACK机制: 为了保证数据能正确的被处理, 对于spout产生的每一个tup ...
- kafka消息确认机制
前言 ACK机制是所有消息中间件必备的特新,kafka也不例外,ACK机制可以提醒使用者消息是否成功发送到broker 我们知道,kafka的一个topic中,具体负责处理消息的是分区,一个分区可能存 ...
最新文章
- linux dip 命令详解
- anaconda中安装xgboost_Anaconda是什么?Anconda下载安装教程 - python基础入门(16)
- 江苏省高邮2021年高考成绩查询,2021年江苏高考成绩排名及一分一段表
- 2018-04-08Java编程夯实学习心得(2)
- input输入框提示从数据库查出来的一堆数据
- SQL之EXISTS用法示例
- jQuery知识点学习整理
- 【Eureka】服务发现调用
- 微信小程序实现登录Java前后端分离
- [Python]正相匹配中文分词【哈工大 车万翔老师视频公开课】
- 近期每日学习与工作时间安排
- 一个月薪 12000 的北京程序员的真实生活
- ubuntu中firfox插件xmarks的同步问题
- java邮箱实现忘记修改密码
- 树莓派Pico开发版
- IOS上的monkey测试探索(一)
- CAPL 无法处理 xlsx 表格,Python老大哥曲线助攻
- 华数工业机器人教学视频_华数六轴工业机器人技术知识讲解介绍
- grasshopper elk插件_Grasshopper常用插件汇总
- HTML5与移动端web学习笔记
热门文章
- Orchard编写网上商店模块2
- 数据科学导论——数据采集和预处理作业
- 基于MVC网上报名系统的实现
- 每日一题---20200429---五个水手在岛上发现一堆椰子,先由第1个水手把椰子分为等量的5堆,还剩下1个给了猴子,自己藏起1堆。迭代法
- java 文件上传Excel解析(表头不固定顺序,多sheet页)并插入数据库
- 【解决方案】国标GB28181协议视频平台EasyGBS及视频融合平台EasyCVR构建公共安全视频图像信息共享云平台方案
- 如何在Ubuntu 18.04上安装Let‘s Encrypt SSL证书
- 移动营销:微博营销与微信营销认识营销渠道
- 颜值测试,宠物识别,色情图片鉴定
- 算法作业1:倒水问题——三壶谜题