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 ) !

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

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

相关文章

.NET周刊【2月第2期 2025-02-09】

国内文章 开箱即用的.NET MAUI组件库 V-Control 发布了! https://www.cnblogs.com/jevonsflash/p/18701494 文章介绍了V-Control,一个适用于.NET MAUI的组件库。作者计划将其开源,强调.NET MAUI是生产力强的跨平台移动开发工具。V-Control提供多种组件…

PHP2(WEB)

##解题思路 打开页面什么线索都没有,目录扫描只是扫出来一个index.php,而源代码没有东西,且/robots.txt是不允许访问的 于是一番查询后发现,有个index.phps的文件路径,里头写着一段php的逻辑,对url的id参数…

VisActor/VTable - 快速搭建表格

VTable源于VisActor体系,该体系是从字节跳动大量可视化场景沉淀而来,旨在提供面向叙事的智能可视化解决方案。VisActor包括渲染引擎、可视化语法、数据分析组件、图表组件、表格组件、GIS组件、图可视化组件、智能组件等多个模块,以及周边生态…

c++第一课(基础c)

目录 1.开场白 2.char(字符) 3.字符数组 4.ASCII码 1.开场白 OK,咱们也是亿(不是作者故意的)天没见,话不多说,直接开始! 2.char(字符) 众所不周知&…

2025年02月21日Github流行趋势

项目名称:source-sdk-2013 项目地址url:https://github.com/ValveSoftware/source-sdk-2013项目语言:C历史star数:7343今日star数:929项目维护者:JoeLudwig, jorgenpt, narendraumate, sortie, alanedwarde…

【简单】209.长度最小的子数组

题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回0。 示例 1: 输入&am…

【STM32】内存管理

【STM32】内存管理 文章目录 【STM32】内存管理1、内存管理简介疑问:为啥不用标准的 C 库自带的内存管理算法?2、分块式内存管理(掌握)分配方向分配原理释放原理分块内存管理 管理内存情况 3、内存管理使用(掌握&#…

Linux 命令大全完整版(14)

5. 文件管理命令 chgrp(change group) 功能说明&#xff1a;变更文件或目录的所属群组。语  法&#xff1a;chgrp [-cfhRv][–help][–version][所属群组][文件或目录…] 或 chgrp [-cfhRv][–help][–version][–reference<参考文件或目录>][文件或目录…]补充说明&…

[数据结构]顺序表详解

目录 一.线性表 二.顺序表 2.1概念及结构 1. 静态顺序表&#xff1a;使用定长数组存储元素。 2. 动态顺序表&#xff1a;使用动态开辟的数组存储。 2.1按需申请 2.2 接口实现&#xff1a;增删查改 SeqList.h: SeqList.c: test.c 一.线性表 线性表 &#xff08; line…

綫性與非綫性泛函分析與應用_2.賦范向量空間-母本

第2章 賦范向量空間 1.向量空間;哈默爾基;向量空間的維數 - 定義與性質 - 向量空間的定義:設\mathbb{K}為數域,集合X是\mathbb{K}上的向量空間,若在X上定義了加法(x,y)\in X\times X\to x + y\in X和數乘(\alpha,x)\in\mathbb{K}\times X\to\alpha x\in X兩種運算,且滿足…

2025年- G17-Lc91-409.最长回文-java版

1.题目描述 2.思路 思路1: 判断一个字符串中的字母个数是否是偶数个。 遍历字符串&#xff0c;检查每个字符是否是字母&#xff08;可以通过 Character.isLetter() 来判断&#xff09;。 累加字母的个数。 最后判断字母的个数是否是偶数。 思路2: 这段 Java 代码的作用是 统…

SpringBoot+Mybatis-Plus实现动态数据源

目录 一、前言二、代码实现1&#xff09;工程结构2&#xff09;相关依赖3&#xff09;数据源拦截切面4&#xff09;动态数据源切换5&#xff09;核心配置类6&#xff09;使用 三、原理分析1&#xff09;mapper接口注入流程2&#xff09;动态数据源切换执行流程 四、声明式事务导…

玩转 Java 与 Python 交互,JEP 库来助力

文章目录 玩转 Java 与 Python 交互&#xff0c;JEP 库来助力一、背景介绍二、JEP 库是什么&#xff1f;三、如何安装 JEP 库&#xff1f;四、JEP 库的简单使用方法五、JEP 库的实际应用场景场景 1&#xff1a;数据处理场景 2&#xff1a;机器学习场景 3&#xff1a;科学计算场…

Qt常用控件之日历QCalendarWidget

日历QCalendarWidget QCalendarWidget 是一个日历控件。 QCalendarWidget属性 属性说明selectDate当前选中日期。minimumDate最小日期。maximumDate最大日期。firstDayOfWeek设置每周的第一天是周几&#xff08;影响日历的第一列是周几&#xff09;。gridVisible是否显示日历…

三数之和:经典问题的多种优化策略

三数之和&#xff1a;经典问题的多种优化策略 大家好&#xff0c;我是Echo_Wish。今天我们来聊一个经典的算法问题——三数之和&#xff08;3Sum&#xff09;。它是许多面试和算法竞赛中常见的问题之一&#xff0c;也常常考察我们对算法优化的理解和技巧。我们不仅要解决问题&…

Go 语言中的协程

概念 Go语言中的协程&#xff08;Goroutine&#xff09;是一种由Go运行时管理的轻量级线程。它是Go语言并发模型的核心&#xff0c;旨在通过简单、易用的方式支持高并发的程序设计。 创建协程 协程的创建非常简单&#xff0c;只需要使用go关键字&#xff0c;后面跟着一个函数…

JAVA最新版本详细安装教程(附安装包)

目录 文章自述 一、JAVA下载 二、JAVA安装 1.首先在D盘创建【java/jdk-23】文件夹 2.把下载的压缩包移动到【jdk-23】文件夹内&#xff0c;右键点击【解压到当前文件夹】 3.如图解压会有【jdk-23.0.1】文件 4.右键桌面此电脑&#xff0c;点击【属性】 5.下滑滚动条&…

基于javaweb的SpringBoot个人博客系统设计和实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

三、linux字符驱动详解

在上一节完成NFS开发环境的搭建后&#xff0c;本节将探讨Linux字符设备驱动的开发。字符设备驱动作为Linux内核的重要组成部分&#xff0c;主要负责管理与字符设备&#xff08;如串口、键盘等&#xff09;的交互&#xff0c;并为用户空间程序提供统一的读写操作接口。 驱动代码…

Python爬虫处理网页中的动态内容

文章目录 前言一、Python环境搭建1.Python安装2.选择Python开发环境 二、Python爬虫处理网页中的动态内容1. 使用 Selenium 库2. 使用 Pyppeteer 库3. 分析 API 请求 前言 在网页中&#xff0c;动态内容通常是指那些通过 JavaScript 在页面加载后动态生成或更新的内容&#xf…