Kafka入门(七)
下面聊聊Kafka的配置参数,包括生产者的配置参数、Broker的配置参数、消费者的配置参数。
1、生产者配置参数
-
acks
该参数控制了生产者的消息发送确认机制,用于指定分区中必须有多少个副本成功接收到消息后生产者才会认为这条消息写入是成功的,即生产者需要Leader副本确认请求完成之前接收的应答数。
该参数有3个值,含义如下

-
buffer.memory
Kafka生产者的Sender子线程在将消息批量发送到Kafka Broker端之前,会把消息先缓存到内存中,该参数决定了消息缓存的大小,默认值为32M;若生产者生产消息的速度大于将消息发送到Broker端的速度,那么生产者将会被堵塞,最终导致生产者抛出RecordTooLargeException异常; -
batch.size
该参数标识当Kafka客户端将多个消息发送到同一个分区的时候,生产者为例减少客户端与Broker端的网络请求数,会尝试先将消息批量打包一起进行统一发送,有助于提升网络吞吐量,其默认值为16KB。 -
compression.type
该参数指定给到Topic中数据的压缩类型,共有4种压缩方式,gzip、snappy、lz4、zstd;也可以设置为uncompressd即不压缩。 -
client.id
该参数表示唯一的id字符串标识。 -
connection.max.idle.ms
该参数决定关闭生产者连接的时间阈值,其默认值为9min。 -
linger.ms
该参数决定消息在生产者发送到Broker端之前,在客户端延迟发送的时间。 -
max.block.ms
该参数用来控制send将消息堵塞多长时间,其默认值为60000ms。 -
max.request.size
该参数表示生产者能发送消息的最大值,其默认值为1MB。 -
retries、retry.backoff.ms
该参数表示通过内部的重试机制来执行恢复,并部署之间将异常抛出,如果重试次数达到设定的次数,生产者才会放弃重试并抛出异常,其默认值为0。 -
receive.buffer.bytes
该参数用来设置接收消息缓冲区大小,其默认值为32KB。 -
send.buffer.bytes
该参数用来设置发送消息缓冲区的大小,其默认值为128KB。 -
request.timeout.ms
该参数用来决定生产者等待请求响应的最大时间,其默认值为30000ms。 -
reconnect.backoff.max.ms
该参数表示Kafka客户端重连的最大时间,每次连接失败,重连时间都会成指数级增加,每次增加的时间会在20%随机浮动,以避免连接风暴出现。 -
reconnect.backoff.ms
该参数表示Kafka客户端每次重连时候的间隔时间。 -
delivery.timeout.ms
该参数用于指定客户端等待发送成功或失败时,客户端等待的时间上限。 -
partitioner.class
该参数表示进行分区操作的类,其默认值为DefaultPartitioner。 -
transaction.timeout.ms
该参数生产者主动终止当前正在进行的操作之前,Kafka等待操作更新的最大时间,其默认值为1min。 -
transaction.id
该参数表示某个事务的id。 -
max.in.flight.requests.per.connection
该参数表示在消息备堵塞前,每个客户端上发送的为应答请求的最大数量,其默认值为5。 -
metadata.max.age.ms
该参数表示当超过这个时间间隔时,系统就会触发更新元数据,其默认值为5min。 -
metadata.max.idle.ms
该参数用来控制生产者获取Topic元数据的时间。
2、Borker配置参数
- broker.id
该参数用来标识唯一的broker server,若不设置或broker.id<0,则会自动计算。 - log.dir
该参数用来设置log数据存放的目录,其默认值为/tmp/kafka-logs。 - log.dirs
该参数用来设置log数据存放的目录,如/tmp/kafka-logs。另外可以用逗号隔开设置多个目录,主要用来挂载到多个磁盘上,如/tmp/kafka0、/tmp/kafka1、/tmp/kafka2。若没有设置该参数,则使用log.dir配置替代。 - listeners
该参数为监听器配置。 - advertised.listeners
该参数用来配置Broker对外发布的监听器列表,存放在zookeeper中,客户端可以通过元数据信息拿到这个监听器列表对该Broker进行访问,如果为空,则默认会用listeners配置。 - zookeeper.connect
该参数用来已hostname:port形式指定zookeeper连接,也可以用逗号形式指定多个zookeeper连接。 - auto.create.topics.enable
该参数用来配置是否可以自动创建Topic。
3、消费者配置参数
- key.deserializer
该参数用来实现key的反序列化。 - value.deserializer
该参数用来实现value的反序列化。 - bootstrap.servers
该参数表示Kafka Broker集群的地址信息,格式为ip1:port、ip2:port等,不需要设定全部的集群地址,设置两个或两个以上即可。 - group.id
该参数表示消费者组的id,如果相同表示属于同一个消费者组,必须指定,否则报异常。 - fetch.min.bytes
该参数用来配置消费者在一次拉取请求中能从Kafka Broker中拉取的最小数据量,即调用poll方式时每次拉取的数据量,其默认值为1字节。 - fetch.max.bytes
与fetch.min.bytes参数对应,用来配置消费者在一次拉取请求中从Kafka Broker端中拉取的最大数据量,其默认值为50MB。 - fetch.max.wait.ms
该参数于fetch.min.bytes有关,若Kafka Broker端返回给消费者的数据量小于fetch.min.bytes值,消费者就需要等待,指定数据量满足参数的配置大小。 - max.poll.records
该参数用来配置消费者在一次拉取请求中拉取的最大消息数,其默认值为500条;若消息数都比较小,可以适当调大该参数提升消费速度。 - max.partition.fetch.bytes
该参数用来配置从每个分区返回给消费者的最大数据量,其默认值为1MB。 - connections.max.idle.ms
该参数用来指定在多长时间之后关闭闲置的消费者连接,其默认值为9min。 - heartbeat.inerval.ms
该参数用来设置于消费者协调器之间的心跳间隔时间。 - send.buffer.bytes
该参数用来设置发送消息缓冲区的大小,其默认值为128KB;若设置为-1,则使用系统默认值。 - receive.buffer.bytes
该参数用来设置接收消息缓冲区的大小,其默认值为64KB;若设置为-1,则使用系统默认值。 - request.timeout.ms
该参数用来配置消费者等待请求响应的最长时间,其默认值为30s。 - reconnect.backoff.ms
该参数用来配置消费者每次尝试重新连接指定Broker之前应该等待的时间,其默认值为50s。 - auto.offset.reset
该参数有3个值,含义如下

- enable.auto.commit
该参数用来配置是否开启自动提交消费位移的功能,默认为开启。 - auto.commit.inerval.ms
该参数只有当enable.auto.commit为true时才生效,即开启自动提交偏移量功能时自动提交消费位移的时间间隔,其默认值为5s。 - partition.assignment.strategy
该参数用来配置消费者的分区分配策略,支持轮询、范围策略。 - inerceptor.class
该参数用来配置消费者的拦截器,必须实现ConsumerInterceptor接口,使用消费者拦截器可以允许用户截取消费者接收的消息,从而改变消息内容。默认是没有设置拦截器。 - exclude.internal.topics
该参数用来配置Kafka中的内部主题是否可以向消费者公开,其默认值为true。在Kafka中,有两个内部主题:_consumer_offsets、_transaction_state。
期待大家来指导~
相关文章:
Kafka入门(七)
下面聊聊Kafka的配置参数,包括生产者的配置参数、Broker的配置参数、消费者的配置参数。 1、生产者配置参数 acks 该参数控制了生产者的消息发送确认机制,用于指定分区中必须有多少个副本成功接收到消息后生产者才会认为这条消息写入是成功的,…...
微服务介绍
微服务 微服务架构发展 微服务这个概念最早是在2011年5月威尼斯的一个软件架构会议上讨论提出的,用于描述一些作为通用架构风格的设计原则;2012年3月在波兰举行的Degree Conference大会,james lewis做演讲,讨论了微服务一些原则…...
搭建SpringBoot多模块微服务项目脚手架(三)
搭建SpringBoot多模块微服务项目脚手架(三) 文章目录搭建SpringBoot多模块微服务项目脚手架(三)1.概述项目结构2.接口返回统一信息模板2.1.封装返回统一信息思路介绍2.2.封装json数据格式1.导入依赖2.封装code码3.封装json格式模板4.使用统一返回信息3.接口统一请求信息模板3.1…...
对vue3中reactive、toref、torefs、ref的详细理解
reactive:将平常的一个对象转换成响应式对象。所谓的响应式对象就是当页面点击修改此对象时,页面无需刷新而在页面上的其他地方有用到这个对象的地方会自动同步修改过来例如: <template><div class"container"><di…...
C++ Primer Plus 第6版 读书笔记(6) 第 6 章 分支语句和逻辑运算符
第 6 章 分支语句和逻辑运算符 C是在 C 语言基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言,是C语言的超集。本书是根据2003年的ISO/ANSI C标准编写的,通过大量短小精悍的程序详细而全面地阐述了 C的基本概念和技术,…...
Java Class 加密工具 ClassFinal
Jar包加密工具 ClassFinal介绍环境依赖使用说明下载加密命令行示例maven插件方式无密码模式机器绑定启动加密后的jar启动参数给密码不加密码参数直接启动1. 密码文件获取2. 交互输入参考资料介绍 ClassFinal 是一款 java class 文件安全加密工具,支持直接加密jar包…...
【蓝桥杯集训·每日一题】AcWing 3555. 二叉树
文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴最近公共祖先一、题目 1、原题链接 3555. 二叉树 2、题目描述 给定一个 n 个结点(编号 1∼n)构成的二叉树,其根结点为 1 号点。 进行 m…...
【JavaScript运行原理之V8引擎】V8引擎解析JavaScript代码原理
1. 编程语言的执行 高级语言最终都需要编译为低级语言才能被硬件执行,越高级的语言中间的转换时间越长,效率越低,越低级的语言执行素的越快,但是由于缺少高级语言便捷的语法特性所以很难编写代码。 2. 大杂烩JS 它是作者在1995…...
C++11:智能指针
文章目录1. 介绍1.1 动态内存与智能指针2. 使用2.1 创建2.2 使用3. 原理3.1 RAII3.2 像指针一样使用3.3 支持智能指针对象拷贝auto_ptrRAII4. 标准库中的智能指针4.1 unique_ptr模拟实现4.2 shared_ptr引用计数模拟实现定制删除器4.3 weak_ptrshared_ptr造成的循环引用问题与sh…...
ccc-pytorch-RNN(7)
文章目录一、RNN简介二、RNN关键结构三、RNN的训练方式四、时间序列预测五、梯度弥散和梯度爆炸问题一、RNN简介 RNN(Recurrent Neural Network)中文循环神经网络,用于处理序列数据。它与传统人工神经网络和卷积神经网络的输入和输出相互独立…...
docker安装(linux)
安装需要的软件包 yum install -y yum-utils 设置stable镜像仓库(使用阿里云镜像) yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 更新yum软件包索引 yum makecache fast 安装DOCKER 引擎 yum -y…...
【数据库概论】10.1 事务及其作用
事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元 10.1 事务的基本概念 1.事务 事务是用户定义的一个数据库操作序列,是一个具有原子性的操作,不可再分,一个事务内的操作要么全做、要么都不做。一般来说,一…...
通讯录(C++实现)
系统需求通讯录是一个可以记录亲人、好友信息的工具。本章主要利用C来实现一个通讯录管理系统系统中需要实现的功能如下:添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人显示联系人:显示通讯录…...
轻松掌握C++的模板与类模板,将Tamplate广泛运用于我们的编程生活
C提高编程 本阶段主要针对C泛型编程和STL技术做详细讲解,探讨C更深层的使用 泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。 模板 1.模板的概念 模板就是建立通用的模具,大大提高复用性 例如: 2.函数模板 C另一种编程思想称…...
pandas 数据预处理+数据概览 处理技巧整理(持续更新版)
这篇文章主要是整理下使用pandas的一些技巧,因为经常不用它,这些指令忘得真的很快。前段时间在数模美赛中已经栽过跟头了,不希望以后遇到相关问题的时候还去网上查(主要是太杂了)。可能读者跟我有一样的问题࿰…...
mmdetectionV2.x版本 训练自己的VOC数据集
mmdetection目录下创建data文件夹,路劲如图所示,不带yololabels 修改配置文件 mmdet/datasets/voc.py 配置图片格式 mmdet/datasets/xml_style.py 如果图片是jpg则改成jpg,是png格式就改成png,这里我不需要改,本…...
Shell - crontab 定时 git 拉取并执行 maven 打包
目录 一.引言 二.踩坑与实践 1.原始代码 2.mvn package 未执行与解决 [导入环境变量] 3.git pull 未执行与解决 [添加绝对路径] 三.总结 一.引言 git 任务部署在通道机,每天6点需要定时更新 jar 包并打包上线,所以需要在 linux 服务器上ÿ…...
408考研计算机之计算机组成与设计——知识点及其做题经验篇目3:指令的寻址方式
上篇文章我们讲到,指令的基本格式,一条指令通常包括操作码字段和地址码字段两部分: 操作码字段地址码字段并且我们还讲到根据操作数地址码的数目不同,可将指令分为零一二三四地址指令。感兴趣的小伙伴们可以看看小编的上一篇文章…...
前端包管理工具:npm,yarn、cnpm、npx、pnpm
包管理工具npm Node Package Manager,也就是Node包管理器; 但是目前已经不仅仅是Node包管理器了,在前端项目中我们也在使用它来管理依赖的包; 比如vue、vue-router、vuex、express、koa、react、react-dom、axios、babel、webpack…...
推荐系统 FM因式分解
reference:知乎 FM算法解析 LR算法没有二阶交叉 如果是id类特征,这里的x是0/1,raw的特征输入就是float,当然,在我的理解里,一般会把raw的特征进行分桶,还是映射到0/1特征,不然这个w…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
