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…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...