当前位置: 首页 > news >正文

Kafka Producer之ACKS应答机制

文章目录

  • 1. 应答机制
  • 2. 等级0
  • 3. 等级1
  • 4. 等级all
  • 5. 设置等级
  • 6. ISR

在这里插入图片描述

1. 应答机制

异步发送的效率高,但是不安全,同步发送安全,但是效率低。

无论哪一种,有一个关键的步骤叫做回调,也就是ACKS应答机制。

其中ACKS也分为3个等级。默认等级是all。

等级效率安全
all(-1)效率低安全性高
1效率中安全性中
0效率高安全性低

2. 等级0

  • 生产者发送消息到Kafka集群。
  • 消息进入网络发送队列。
  • 生产者立即返回(认为消息已发送),不等待任何Broker的确认。

在这里插入图片描述

3. 等级1

  • 生产者发送消息到Kafka集群。
  • Leader分区接收消息,将消息写入本地日志。
  • Leader分区将消息同步到磁盘(如果配置了日志刷新)。
  • Leader分区返回确认(ACK)给生产者。
  • 生产者收到ACK,继续处理下一条消息。

在这里插入图片描述

4. 等级all

  • 生产者发送消息到Kafka集群。
  • Leader分区接收消息,将消息写入本地日志。
  • Leader分区将消息同步到磁盘(如果配置了日志刷新)。
  • Leader分区将消息发送给所有同步副本(ISR)。
  • 每个同步副本(Follower)将消息写入本地日志并返回确认给Leader。
  • Leader分区收到所有同步副本的确认后,返回ACK给生产者。
  • 生产者收到ACK,继续处理下一条消息。

在这里插入图片描述

5. 设置等级

        //创建producerHashMap<String, Object> config = new HashMap<>();config.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:19092");config.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());config.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());//配置acks等级config.put(ProducerConfig.ACKS_CONFIG, "-1");KafkaProducer<String, String> producer = new KafkaProducer<String, String>(config);

6. ISR

ISR的定义:

  • 成员:ISR包括Leader和所有与Leader保持同步的Follower分区。保持同步的标准是Follower分区的日志不落后于Leader分区超过指定的时间(由replica.lag.time.max.ms配置)。
  • 目的:确保在Leader发生故障时,可以迅速从ISR中选举一个新的Leader,从而保证分区的高可用性。

ISR的动态调整:

  • Kafka会动态调整ISR的成员。如果一个Follower分区落后于Leader超过一定的时间,Kafka会将其从ISR中移除。
  • 当该Follower分区重新追上Leader并满足同步标准时,Kafka会将其重新加入ISR。
http://www.lryc.cn/news/405070.html

相关文章:

  • 【深入理解SpringCloud微服务】深入理解Eureka核心原理
  • 算法——滑动窗口(day7)
  • Django学习第一天(如何创建和运行app)
  • VScode连接虚拟机运行Python文件的方法
  • 通义千问AI模型对接飞书机器人-模型配置(2-1)
  • [k8s源码]6.reflector
  • 前台文本直接取数据库值doFieldSQL插入SQL
  • 【06】LLaMA-Factory微调大模型——微调模型评估
  • 数学建模学习(1)遗传算法
  • NumPy冷知识66个
  • Wi-SUN无线通信技术 — 大规模分散式物联网应用首选
  • 在 Ubuntu Server 22.04 上安装 Docker 的详细步骤
  • 前端使用 Konva 实现可视化设计器(18)- 素材嵌套 - 加载阶段
  • vue3 -layui项目-左侧导航菜单栏
  • Spring AOP(1)
  • 第1关 -- Linux 基础知识
  • tensorflow keras Model.fit returning: ValueError: Unrecognized data type
  • 虚拟机固定配置IP
  • 【Pytorch实用教程】pytorch中random_split用法的详细介绍
  • 第二讲:NJ网络配置
  • pytorch中常见的模型3种组织方式 nn.Sequential(OrderedDict)
  • 达梦数据库DM8-索引篇
  • 【中项】系统集成项目管理工程师-第4章 信息系统架构-4.5技术架构
  • 随机梯度下降 (Stochastic Gradient Descent, SGD)
  • TDengine 3.3.2.0 发布:新增 UDT 及 Oracle、SQL Server 数据接入
  • Ubuntu 24.04 LTS 无法打开Chrome浏览器
  • linux中RocketMQ安装(单机版)及springboot中的使用
  • 亚信安全终端一体化解决方案入选应用创新典型案例
  • Django视图与URLs路由详解
  • 怎么关闭 Windows 安全中心,手动关闭 Windows Defender 教程