kafka入门,发送原理和生产者重要参数(三)

发送原理

在消息发送过程中,涉及两个线程,main线程和Sender线程。在main线程中创建了一个双端队列,RecordAccumulator,Sender过程不断从RecordAccumulator中拉取消息发送到Kafka Broker
在这里插入图片描述
batch size:只有数据累计到batch.size之后,sender才会发送数据,默认16k。
linger.ms: 如果数据迟迟未达到batch.size,sender等待linger.ms设置的时间到了之后就会发送数据。单位ms,默认是0ms,表示没有延迟
应答
应答acks
0:生产者发送过来数据,不需要等数据落盘应答
1:生产者发送过来的数据,leader收到数据后应答
-1:(all):生产者发送过来的数据,leader和ISR队列的所有节点收齐数据后应答。

生产者重要参数

参数名称描述
bootstrap.servers生产者连接集群所需要的broker清单,例如hadoop100:9002,hadoop101:9002,hadoop:102: 9002,可以设置1个或者多个,中间用逗号隔开,注意这里并不是需要所有broker的地址,因为生产者从给定的broker里查找到其他broker信息
key.serializer 和 value.serializer指定发送消息的key和value的序列化类型,一定要写全类名
key.serializer 和 value.serializer指定发送消息的key和value的序列化类型,一定要写全类名
buffer.memoryRecordAccumulator缓冲区总大小,默认32m
batch.size缓冲区一批数据最大值,默认16K。适当增加该值,可以提高吞吐量,如果该值设置太大,会导致数据传输延迟增加
linger.ms如果数据迟迟未到batch.size,sender等待linger.time之后就会发送数据。单位ms,默认值时是0ms,表示没有延迟,生产环境建议该值大小为5-100ms
acks0:生产者发送过来的数据,不需要等数据落盘应答。1:生产者发送过来的数据,leader收到数据后应答。-1:生产者发送过来的数据,leader+和isr队列里面所有的节点收起数据后应答,默认值是-1,-1和all等价的
retries当消息发送出现错误的时候,系统会重发消息,retries表示重试次数。默认是int最大值,如果设置了重试,还想保证消息的有序性,需要设置MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION=1,否则在重试此失败小
retry.backoff.ms两次重试之间的间隔,默认是100ms
enable.idempotence是否开启幂等性,默认true,开启幂等性
compression.type生产者发送的所有数据的压缩方式,默认是none,就是不压身,支持压缩类型:none,gzip,snappy,lz4和zstd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/2023.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#winform listBox组件批量删除

修改listBox组件属性:可以选中多个板坯号 选中板坯列表,在界面上点击删除按钮,触发删除方法deleteList: private void deleteList() { ListBox.SelectedIndexCollection sic listBoxProducts.SelectedIndice…

虹科分享|如何防范MOVEit transfer漏洞|高级威胁防御

美国网络安全和基础设施安全局(CISA)承认,它正在向几个联邦机构提供支持,这些机构在Progress(前身为IpSwitch)MOVEit传输解决方案中暴露出漏洞后被攻破。根据CISA发布的一份警报和网络安全公告,CL0P勒索软件团伙一直在积极利用漏洞进行数据外…

react中基于腾讯地图的地图选点,地址搜索逆向定位获取经纬度

react中基于腾讯地图的地图选点,地址搜索逆向定位获取经纬度 效果示例图地图组件tencentMap/index.jsx样式map.scss 使用案例 效果示例图 地图组件tencentMap/index.jsx import { useEffect, useRef, useState } from "react"; import "./map.scss&…

数据结构--单链表的插入删除

数据结构–单链表的插入&删除 目标 单链表的插入(位插、前插、后插) 单链表的删除 单链表的插入 按为序插入(带头结点) ListInsert(&L,i,e):插入操作。在表L中的第i个位置上插入指定元素e。 思路:找到第i-1个结点,将新结点插入其…

SpringMVC

SpringMVC常用注解: 1:Controller:用于标记控制器类,表示该类是可以处理HTTP请求的。 2:RequestMapping:用于映射URL和处理方法。可以在类和方法上,类级别的RequestMapping会对其中所有的方法进行URL映射。参数支持Ant-style路径…

01.网络编程-基础概念

网络编程就是指编写互联网项目,项目可以通过网络传输数据进行通讯 网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的 1.1 软件结构…

掌握GDB调试工具,轻松排除bug!

一、什么是GDB gdb是GNU debugger的缩写,是编程调试工具。 GDB官网: https://www.gnu.org/software/gdb/GDB适用的编程语言: Ada / C / C / objective-c / Pascal 等。GDB的工作方式: 本地调试和远程调试。 目前release的最新版…

PG系列4:linux下编译安装PG15

文章目录 一. 源码安装1.1 下载并解压1.2 安装依赖包1.3 开始编译安装1.4 创建用户1.5 创建目录及修改权限1.6 设置环境变量1.7 初始化数据库1.8 启动和关闭数据库 二. 验证2.1 查看数据库后台进程2.2 验证和登陆数据库2.3 查看数据库版本2.4 查看数据库运行状态2.5 修改白名单…

Docker 安装 Redis

一、官方推荐安装方式: 1、执行 docker pull redis:4.0.1 命令,下载 redis 镜像,如下所示: 2、执行命令,创建并启动 redis 容器 docker run --rm -d --name redis6379 -p 6379:6379 redis:4.0.1 --requirepass "…

【QT】如何自定义QMessageBox的窗口大小,通过继承QDialog重新实现美观的弹窗

目录 1. QMessageBox原有的弹窗2. 网上第一种方法:通过样式表setStyleSheet实现改变弹窗大小(总体不美观)3. 网上第二种方法:重写ShowEvent()改变弹窗大小(总体也不美观)4. 最好的办法:继承QDia…

webstorm2022 TS1109: Expression expected.

在使用webstorm2022,加入ESLint(已禁用)的情况下,编写vue3的typescript代码时,报错: TS1109: Expression expected. 原因:2022版本不支持volar,需升级到2023版本。 官方描述为&am…

IAM风险CTF挑战赛

wiz启动了一个名为“The Big IAM Challenge”云安全CTF挑战赛。旨在让白帽子识别和利用 IAM错误配置,并从现实场景中学习,从而更好的认识和了解IAM相关的风险。比赛包括6个场景,每个场景都专注于各种AWS服务中常见的IAM配置错误。 Challenge…