kafka-保姆级配置说明(producer)

配置说明的最后一部分;

##指定kafka集群的列表,以“,”分割,格式:“host:port,host:port”
##此列表用于producer(consumer)初始化连接使用,server列表可以为kafka集群的子集
##通过此servers列表,client端用于发现cluster的成员全拓扑以及获取集群的meta信息。
##为了避免某个bootstrap失效而无法初始化client,建议此servers列表中server个数>3
##此servers为kafka brokers,而非zookeeper
bootstrap.servers=
##key、value序列化类,必须实现Serializer接口
##当key、value不是string时,需要指定
##如果指定了相应的Serializer,那么也要求consumer端对应配置相应的Deserializer
#key.serializer=
#value.serializer=
##标识producer,仅用于server端追踪请求。默认值为"",通常不需要指定
##client.id=
##消息分区的算法类,默认为:
##org.apache.kafka.clients.producer.internals.DefaultPartitioner
##即根据key进行hash分区。
#partitioner.class=
 
##producer发送消息后,在确认请求完成之前需要partition leader收到的ack的数量。
##它用来控制已发送消息的持久性。默认值为:1
##acks=0 :表示producer不需要等到broker任何ack。消息将会立即添加到socket buffer并认定为此消息已发送。
##这将不能保证broker最终一定能够接收到消息并可靠的持久化,
##在此情况下,“retries”配置项也将不生效(即使发送是底层传输通道遇到error,且错误情况也不会对client可见)
##每个消息的反馈信息中offset值总为-1。
##这被认为是一种最高效的传输、确认机制,也是数据担保能力最弱的机制。(当producer端进程退出即可能导致消息丢失)
##acks=1:表示当partition leader收到消息且写入log文件后,即确认为消息请求已完成(向client端反馈ACK)。
##此时,leader不会等待任何replicas(ISR followers)同步完毕。
##这种情况下,当leader在ACK此消息之后失效,且此时followers尚未同步到此消息时,那么此消息将意味着丢失。
##这被认为是一种最通用的传输、确认机制,兼顾数据传输效率和数据担保能力(当partition leader失效时可能导致消息丢失)
##acks=all:当leader接收到消息后,等待所有的ISR followers同步消息,直到所有的ISR都确认收到消息(且写入log文件)以后,
##leader才会向producer反馈ACK,在此过程中producer将一直等待。(如果消息发送失败,producer将会重试,直到超时)
##这被认为是一种担保能力最强、但传输效率最低的机制。
##(除非broker磁盘刷新率较低,且只有leader在线,且在fsync期间物理失效,否则几乎不会丢失数据)
acks=1
 
##单位字节,默认为:32M,建议值为:2097152 (即2M)
##producer端缓存亟待发送消息的内存最大值;
##如果消息发送的速度(调用send方法)比底层IO通道传输的速度高,那么在buffer溢出之前,
##producer的发送操作(send)将会阻塞或者抛出异常,直到buffer空闲。(取决于“block.on.buffer.full”)
##此值的设置,取决于producer与broker端的IO通讯效率,接近“网络IO”的传输效率是最佳状态;
##较大的值,意味着当buffer溢出后客户端等待的时间更长;较小的值,意味着网络IO传输效能较低。
buffer.memory=33554432
 
 
##当producer发送消息时,遇到底层IO异常时,重试发送的次数;默认为0,表示不重发。
##重发,可能会导致消息乱序的问题。
##(底层连接基于NIO,则允许发送多次请求,以及依次收到响应;而不是阻塞模式的request-response模式)
retries=1
##retry操作的backoff时间,即每次retry之前wait的时间
retry.backoff.ms=100
 
##producer会尽可能的将相同partiton的消息批量发送,以提高发送效率(ACK确认次数减少)
##批量发送,对client和broker都有较大的性能提升。
##此参数用于控制单次批量发送的最大数量量,单位:字节,如果设置为0则表示关闭批量发送。
##发送给broker的请求可以包含多个batches,每个batch对应一个partion(有多条消息组成)
##在发送消息时,总是创建batch.size大小的buffer用于保存消息;所以较大的值将会消耗更高的内存
batch.size=16384
 
##语义有点类似于TCP中的“Nagle”算法(封包传输机制)
##当我们开启batch.size设置时,且buffer中的消息量达到batch.size时,消息将会立即批量发送;
##但是如果buffer中消息量不足batch.size时,则等待“linger.ms”时间后再发送,此期间寄希望获得更多的消息,以达到批量发送的目的。
##此值默认为0,表示“不等待”(no delay)。
linger.ms=0
 
##当buffer溢出时、metadata不可用(即因为broker端leader选举等,无法获取最新的metadata),
##将会导致producer的send方法阻塞,此值用于控制阻塞的最长时间。
##用户自定的serializers处理耗时、partitioner计算耗时,则不包含在内。
max.block.ms=60000
 
##单次请求所允许的最大数据量:用于限制每个请求所能包含的batches个数、消息的个数。
##当然也可以用来限制每个消息的最大尺寸,以避免发送“huge”的请求。
max.request.size=1048576
 
##用于控制client等待响应的最大时间
##当超时后,请求将会被重试;如果重试次数已达到阀值,则认为请求失败。
request.timeout.ms=30000
 
##用于限定broker端leader等待followers反馈ACK以满足“acks”配额要求的最大等待时间。
##此值不包含producer到broker的网络传输耗时。
##当leader在限定时间内无法获取满足配额要求的acks时,将会返回error。(但已经执行的数据并不撤销)
timeout.ms=30000
 
##在客户端单个连接上允许“尚未ACK”的请求的最大个数,
##当此连接上“已发送”、“尚未确认”的请求个数达到此值时,client将会阻塞(max.block.ms)。
max.in.flight.requests.per.connection=5
 
##客户端在发送实际消息之前,比如获取broker端的meta信息:包括指定topic的parttions列表以及所位于的broker地址
##此值用于控制获取metadata的超时时间
metadata.fetch.timeout.ms=60000
 
##因为broker集群的变迁,metadata会不断变化,比如leader的迁移等。
##此值用于控制client端强制刷新(重新获取)metadata的时间间隔。
##当client发送消息遇到异常时(比如partition leader不可用)也会尝试立即刷新metadata。
metadata.max.age.ms=300000
 
##底层IO连接空闲的最大时间,单位:毫秒
##connections.max.idle.ms=540000
##底层IO连接通道,在重建连接时的backoff时间(即间歇等待的时间),以避免频繁重建连接且失败的情况。
reconnect.backoff.ms=50
 
##是否启用压缩机制,建议关闭
compression.type=none

  ----------------------------------------------------------------------------------------------

深耕运维行业多年,擅长linux、容器云原生、运维自动化等方面。
承接各类运维环境部署、方案设计/实施、服务代运维工作,欢迎沟通交流!

(V: xiaoxiangbj2013 ) !

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows 下 Ollama 安装deepseek本地模型

Windows 下 Ollama 安装deepseek本地模型 安装 Ollama 下载 Ollama 下载链接:https://ollama.org.cn/download/windows 下载完成后,按照提示进行安装。 安装过程 安装完成后,安装页面会自动关闭,这是正常现象。 接下来&#…

Java面试——Tomcat

优质博文:IT_BLOG_CN 一、Tomcat 顶层架构 Tomcat中最顶层的容器是Server,代表着整个服务器,从上图中可以看出,一个Server可以包含至少一个Service,用于具体提供服务。Service主要包含两个部分:Connector和…

MySql面试宝典【刷题系列】

文章目录 一、Mysql 的存储引擎 myisam 和 innodb 的区别。二、MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?三、对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题?四、锁的优化策略…

图表控件Aspose.Diagram入门教程:使用 Python 将 VSDX 转换为 PDF

将VSDX转换为PDF可让用户轻松共享图表。PDF 文件保留原始文档的布局和设计。它们广泛用于演示文稿、报告和文档。在这篇博文中,我们将探讨如何在 Python 中将 VSDX 转换为 PDF。 本文涵盖以下主题: Python VSDX 到 PDF 转换器库使用 Python 将 VSDX 转…

【含开题报告+文档+PPT+源码】基于springboot加vue 前后端分离的校园新闻审核发布管理系统

开题报告 本研究旨在设计并实现一套基于SpringBoot后端框架结合Vue前端技术的校园新闻发布系统,该系统面向学生用户群体提供了全面的功能服务。学生用户通过身份验证登录后,能够便捷高效地获取校园内的各类新闻资讯,实时了解校内动态。系统不…

Spring BOOT 启动参数

Spring BOOT 启动参数 在Java Web的开发完成后,以前我们都会打包成war文件,然后放大web容器,比如tomcat、jetty这样的容器。现在基于SpringBoot开发的项目,我们直接打包成jar文件,基于内嵌的tomcat来实现一样的效果。…

探索无网用Deepseek+qwen来助力Solidworks二次开发

在本教程中,我们将详细介绍如何在本地环境中使用 DeepSeek 和 Qwen 模型,结合 AnythingLLM,构建一个用于 SolidWorks 二次开发的私有化智能知识库。 目录 前言 环境准备 2.1 安装 Ollama 2.2 安装 Docker Desktop DeepSeek 本地部署 3.1…

在nodejs中使用ElasticSearch(一)安装,使用

使用docker安装ElasticSearch和Kibana 1)创建相应的data文件夹和子文件夹用来持久化ElasticSearch和kibana数据 2)提前创建好elasticsearch配置文件 data/elasticsearch/config/elasticsearch.yml文件 # Elasticsearch Configuration # # NOTE: Elas…

Jenkins整合Jmeter实现接口自动化测试

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、安装jmeter 下载:http://jmeter.apache.org/download_jmeter.cgi 这里我用了一台Windows安装jmeter用来写接口测试的脚本,启动前修改j…

宇树科技13家核心零部件供应商梳理!

2025年2月6日,摩根士丹利(Morgan Stanley)发布最新人形机器人研报:Humanoid 100: Mapping the Humanoid Robot Value Chain(人形机器人100:全球人形机器人产业链梳理)。 Humanoid 100清单清单中…

PostgreSQL 与 MySQL 有哪些区别

PostgreSQL 和 MySQL 是两种流行的开源关系型数据库管理系统(RDBMS),它们在功能、性能、扩展性和适用场景等方面存在显著差异。 以下是 PostgreSQL 和 MySQL 的主要区别: 1. 架构与设计理念 PostgreSQL: 强调标准兼…

springboot整合 xxl-job

文章目录 一、xxl-job是什么二、使用步骤 1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功3. 配置执行器【在自己的springboot项目中配置】4. 在页面上创建执行器和任务,与项目中绑定 总结参考 一、xxl-job是什么 XXL-JOB 是一个分布式任务调…

conda、anaconda、pip、pytorch、tensorflow有什么区别?

先画一张图,可以大致看出它们的区别和关联: pytorch、tensorflow都是Python的第三方库,相当于封装的代码工具集库,通过import导入使用。这两个都是深度学习框架,用来搭建AI模型什么的,使用范围非常之广&…

java后端开发day18--学生管理系统

(以下内容全部来自上述课程) 1.业务分析并搭建主菜单 1.需求 采取控制台的方式去书写学生管理系统 2.分析 1.初始菜单 2.学生类 属性:id,姓名,年龄,家庭住址 3.添加功能 键盘录入每一个学生信息并添…

【设计模式精讲】结构型模式之代理模式(静态代理、JDK动态代理、cglib动态代理)

文章目录 第五章 结构型模式5.1 代理模式5.1.1 代理模式介绍5.1.2 代理模式原理5.1.3 静态代理实现5.1.4 JDK动态代理5.1.4.1 JDK动态代理实现5.1.4.2 类是如何动态生成的5.1.4.3 代理类的调用过程 5.1.5 cglib动态代理5.1.5.1 cglib动态代理实现5.1.5.2 cglib代理流程 5.1.6 代…

业务流程中的流程管理

流程管理是业务流程管理中至关重要的一环。它专注于规划、组织、指导、控制和优化组织内的各项业务流程,以提高效率、降低成本、提升质量和增强客户满意度。简单来说,流程管理就是管理你的业务是如何完成工作的。 下面将从几个方面详细讲解业务流程中的…

2025年股指期货和股指期权合约交割的通知!

锦鲤三三每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 2025年股指期货和股指期权合约交割的通知! 根据中国金融期货交易所规则及相关规定,以下股指期货和股指期权合约于指定日期进行交割,现将各合…

播放器系列1——总概述

播放器核心架构 模块解释 文件读取 读取视频文件、读取网络文件、读取音频文件,大概分为这三种,目前代码中仅实现了读取视频文件播放,也就是当没有video数据的时候播放器不可使用。 解复用 容器指的是多媒体文件中的封装格式,…

MacOS下使用Ollama本地构建DeepSeek并使用本地Dify构建AI应用

目录 1 大白话说一下文章内容2 作者的电脑配置3 DeepSeek的本地部署3.1 Ollamal的下载和安装3.2 选择合适的deepseek模型3.3 安转deepseek 4 DifyDeepSeek构建Al应用4.1 Dify的安装4.1.1 前置条件4.1.2 拉取代码4.1.3 启动Dify 4.2 Dify控制页面4.3 使用Dify实现个“文章标题生…

神经网络八股(三)

1.什么是梯度消失和梯度爆炸 梯度消失是指梯度在反向传播的过程中逐渐变小,最终趋近于零,这会导致靠前层的神经网络层权重参数更新缓慢,甚至不更新,学习不到有用的特征。 梯度爆炸是指梯度在方向传播过程中逐渐变大,…