文章目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机制相关推荐

  1. kafka之ack机制

    ack概述 kafka的ack机制,指的是producer的消息发送确认机制,在不同的场景可以灵活的选择ack机制来配合业务,不同的ack设置对kafka集群的吞吐量和消息可靠性也会有影响. ack有 ...

  2. kafka 的 ack机制

    一.前言 acks参数指定了必须要有多少个分区副本收到消息,生产者才认为该消息是写入成功的,这个参数对于消息是否丢失起着重要作用,该参数的配置具体如下: 二.ack = 0 acks=0,表示生产者在 ...

  3. 【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.概述 ...

  4. Kafka 生产者数据安全(ACK机制,ACK时机,ACK应答机制,故障处理,Exactly Once)

    目录 生产者数据安全 一.数据分区 图解 分区原因 分区原则 二.数据可靠性保证 ACK机制 ACK时机 ACK应答机制 故障处理 Exactly Once 语义 生产者数据安全 一.数据分区 图解 ...

  5. 用redis实现消息队列(实时消费+ack机制)【转】

    用redis实现消息队列(实时消费+ack机制) java queue 消息队列 redis 消息队列 首先做简单的引入. MQ主要是用来: 解耦应用. 异步化消息 流量削峰填谷 目前使用的较多的有A ...

  6. Kafka整体结构图、Consumer与topic关系、Kafka消息分发、Consumer的负载均衡、Kafka文件存储机制、Kafka partition segment等(来自学习资料)

    ##1. Kafka整体结构图 Kafka名词解释和工作方式  Producer : 消息生产者,就是向kafka broker发消息的客户端.  Consumer : 消息消费者,向kafka ...

  7. kafkaspot在ack机制下如何保证内存不溢

    storm框架中的kafkaspout类实现的是BaseRichSpout,它里面已经重写了fail和ack方法,所以我们的bolt必须实现ack机制,就可以保证消息的重新发送:如果不实现ack机制, ...

  8. Storm的ack机制在项目应用中的坑

    正在学习storm的大兄弟们,我又来传道授业解惑了,是不是觉得自己会用ack了.好吧,那就让我开始啪啪打你们脸吧. 先说一下ACK机制: 为了保证数据能正确的被处理, 对于spout产生的每一个tup ...

  9. kafka消息确认机制

    前言 ACK机制是所有消息中间件必备的特新,kafka也不例外,ACK机制可以提醒使用者消息是否成功发送到broker 我们知道,kafka的一个topic中,具体负责处理消息的是分区,一个分区可能存 ...

最新文章

  1. linux dip 命令详解
  2. anaconda中安装xgboost_Anaconda是什么?Anconda下载安装教程 - python基础入门(16)
  3. 江苏省高邮2021年高考成绩查询,2021年江苏高考成绩排名及一分一段表
  4. 2018-04-08Java编程夯实学习心得(2)
  5. input输入框提示从数据库查出来的一堆数据
  6. SQL之EXISTS用法示例
  7. jQuery知识点学习整理
  8. 【Eureka】服务发现调用
  9. 微信小程序实现登录Java前后端分离
  10. [Python]正相匹配中文分词【哈工大 车万翔老师视频公开课】
  11. 近期每日学习与工作时间安排
  12. 一个月薪 12000 的北京程序员的真实生活
  13. ubuntu中firfox插件xmarks的同步问题
  14. java邮箱实现忘记修改密码
  15. 树莓派Pico开发版
  16. IOS上的monkey测试探索(一)
  17. CAPL 无法处理 xlsx 表格,Python老大哥曲线助攻
  18. 华数工业机器人教学视频_华数六轴工业机器人技术知识讲解介绍
  19. grasshopper elk插件_Grasshopper常用插件汇总
  20. HTML5与移动端web学习笔记

热门文章

  1. Orchard编写网上商店模块2
  2. 数据科学导论——数据采集和预处理作业
  3. 基于MVC网上报名系统的实现
  4. 每日一题---20200429---五个水手在岛上发现一堆椰子,先由第1个水手把椰子分为等量的5堆,还剩下1个给了猴子,自己藏起1堆。迭代法
  5. java 文件上传Excel解析(表头不固定顺序,多sheet页)并插入数据库
  6. 【解决方案】国标GB28181协议视频平台EasyGBS及视频融合平台EasyCVR构建公共安全视频图像信息共享云平台方案
  7. 如何在Ubuntu 18.04上安装Let‘s Encrypt SSL证书
  8. 移动营销:微博营销与微信营销认识营销渠道
  9. 颜值测试,宠物识别,色情图片鉴定
  10. 算法作业1:倒水问题——三壶谜题