Kafka重要配置参数全面解读(重要)

欢迎来到我的博客,代码的世界里,每一行都是一个故事


在这里插入图片描述

Kafka重要配置参数全面解读(重要

    • 前言
    • auto.create.topics.enable
    • auto.leader.rebalance.enable
    • log.retention.{hour|minutes|ms}
    • offsets.topic.num.partitions 和 offsets.topic.replication.factor
    • log.retention.bytes和message.max.bytes
    • auto.offset.reset
    • unclean.leader.election.enable
    • replication.factor
    • min.insync.replicas
    • enable.auto.commit
    • retention.ms
    • retention.bytes
    • max.message.bytes
    • unlimit -n
    • session.timeout.ms
    • heartbeat.interval.ms

)

前言

在数据处理的世界里,Kafka就像是一条快速的数据管道,负责传输海量的数据。但是,想要让这条管道运行得更加顺畅,就需要对其进行一些调整和优化。就像是调整一辆跑车的引擎一样,每一个配置参数都是关键。本文将带你进入Kafka的配置世界,解锁其中的秘密,让你的数据流畅如风。

auto.create.topics.enable

  • 作用: 控制是否允许自动创建主题。如果设置为 true,当生产者发送消息到一个不存在的主题时,Kafka 会自动创建该主题。
  • 生产环境配置: 通常建议关闭自动创建主题,以防止意外创建主题带来的不可预测性。主题应该由管理员预先创建和配置,确保主题的设置满足生产需求。显示设置为false
  • 可能的异常: 如果允许自动创建主题,可能会导致主题名称拼写错误、主题配置不一致等问题,影响数据的稳定性和一致性。

auto.leader.rebalance.enable

  • 作用: 控制是否启用自动领导者平衡。当 Kafka 集群中的某个节点宕机或加入集群时,自动领导者平衡会自动将分区的领导者重新分配到其他存活节点上。
  • 生产环境配置: 建议设置为false,以确保集群的负载均衡和高可用性。在某些情况下,可能会考虑手动进行领导者平衡以避免频繁的重新平衡造成的性能损失。
  • 可能的异常: 如果关闭自动领导者平衡,可能会导致集群中部分节点负载过高,影响系统的稳定性和性能。

log.retention.{hour|minutes|ms}

  • 作用: 控制日志文件的保留时间。指定日志文件保留的时间长度。
  • 生产环境配置: 根据业务需求和数据存储需求,合理设置日志文件的保留时间。通常建议根据数据的重要性和存储成本来设置。
  • 可能的异常: 如果设置的保留时间过长,可能会导致存储空间不足,影响系统的正常运行;如果设置过短,可能会导致重要数据被删除,影响数据的完整性和可用性。

offsets.topic.num.partitions 和 offsets.topic.replication.factor

  • 作用: 控制偏移量存储的主题分区数和复制因子。offsets.topic.num.partitions 指定了偏移量主题的分区数,offsets.topic.replication.factor 指定了偏移量主题的副本数。默认为50和3
  • 生产环境配置: 偏移量主题在 Kafka 集群中非常重要,需要确保其分区数和复制因子足够大,以保证数据的可靠性和高可用性。
  • 可能的异常: 如果偏移量主题的分区数和复制因子设置不合理,可能会导致偏移量丢失或不一致,影响消息的消费和数据的准确性。

log.retention.bytes和message.max.bytes

  • 作用: log.retention.bytes 控制日志文件的最大大小,message.max.bytes 控制单个消息的最大大小。
  • 生产环境配置: 根据业务需求和存储资源限制,合理设置日志文件和消息的最大大小,以避免存储空间不足或单个消息过大而导致的性能问题。默认是1000012,不到1M,设置大一点不会耗费什么磁盘空间
  • 可能的异常: 如果设置的日志文件最大大小过小,可能会导致频繁的日志文件切换,影响性能;如果单个消息超过最大大小限制,可能会导致消息被拒绝或截断,影响数据的完整性。

auto.offset.reset

  • 作用: 控制消费者在没有初始偏移量或偏移量无效的情况下的起始位置。可以设置为 earliest(从最早的可用消息开始消费)或 latest(从最新的消息开始消费)。

    • 生产环境配置: 根据业务需求和消费者行为,选择合适的起始位置。如果需要消费历史数据,可以设置为 earliest;如果只关注最新数据,可以设置为 latest

    • 可能的异常: 如果起始位置设置不合理,可能会导致消费者无法正常消费消息或消费到过期或重复的消息,影响数据的准确性和完整性。

unclean.leader.election.enable

  • 作用: 控制是否允许非干净的领导者选举。当 Kafka 集群中的某个分区的领导者节点宕机或不可用时,如果设置为 false,则只有那些已经同步到最新数据的副本节点才有资格成为新的领导者。
  • 生产环境配置: 建议设置为 false,以确保领导者选举只会选举同步到最新数据的副本节点,避免因选举了未同步数据的节点作为领导者而导致数据不一致或消息丢失的情况。
  • 可能的异常: 如果设置为 true,可能会导致选举非干净的领导者,从而可能会产生数据不一致或消息丢失的问题。

replication.factor

  • 作用: 控制分区的副本数量。replication.factor 参数指定了每个分区的副本数,即每个分区的数据将被复制到多少个节点上。
  • 生产环境配置: 建议设置为大于等于 3,以确保数据的可靠性和高可用性。在生产环境中,通常需要至少三个副本来保证数据的完整性和可用性。
  • 可能的异常: 如果副本数量设置过少,可能会导致数据丢失或不一致的风险增加,特别是在节点故障或网络分区的情况下。

min.insync.replicas

  • 作用: 控制要求参与写入操作的最小副本数。min.insync.replicas 参数指定了至少要有多少个副本参与到写入操作中,确保数据被写入到足够多的节点上。
  • 生产环境配置: 建议设置为大于 1,以确保至少有多个节点接收到写入操作并进行复制,从而增加数据的可靠性和一致性。设置>1
  • 可能的异常: 如果设置为 1 或更低,可能会导致数据不一致或丢失的风险增加,特别是在节点故障或网络分区的情况下。

enable.auto.commit

  • 作用: 控制是否启用自动提交位移。如果设置为 false,消费者将不会自动提交消费位移,而需要手动调用 commitSync()commitAsync() 方法来提交位移。
  • 生产环境配置: 建议设置为 false,以避免因自动提交位移而导致的位移提交不及时或不准确的问题,从而增加消息丢失或重复消费的风险。设置为false
  • 可能的异常: 如果设置为 true,可能会导致位移提交不及时或不准确,从而可能会导致消息重复消费或丢失的问题。

retention.ms

  • 作用: 控制消息在日志中保留的时间。此参数表示消息在日志中保留的最长时间,以毫秒为单位。
  • 生产环境配置: 适当设置消息的保留时间,以满足业务需求和法规合规要求。根据数据的重要性和存储资源的限制,设置合适的保留时间。这个一旦设置了会覆盖Broker的全局参数
  • 可能的异常: 如果保留时间设置不当,可能会导致存储空间不足或数据被过早删除,影响数据的完整性和可用性。

retention.bytes

  • 作用: 控制日志段文件的最大大小。此参数表示日志段文件的最大字节数。
  • 生产环境配置: 根据存储资源的限制和数据的重要性,设置合适的日志段文件最大大小。确保设置的值不会导致存储空间不足或日志文件切换过于频繁。默认-1
  • 可能的异常: 如果设置的日志段文件最大大小过小,可能会导致频繁的日志文件切换,影响性能;如果设置过大,可能会导致存储空间浪费或日志文件过于庞大,难以管理。

max.message.bytes

  • 作用: 控制单个消息的最大大小。此参数表示单个消息的最大字节数。
  • 生产环境配置: 根据业务需求和网络传输限制,设置合适的单个消息最大大小。避免设置过大的值导致网络传输问题或消费者内存溢出。太小会报错,我认为直接给一个大一点的值,默认值好像是1m
  • 可能的异常: 如果设置的单个消息最大大小过小,可能会导致消息被拒绝或截断,影响数据的完整性;如果设置过大,可能会导致网络传输问题或消费者内存溢出,影响系统的稳定性。

unlimit -n

  • 作用: 控制一个用户可打开的最大文件描述符数量。
  • 生产环境配置: 根据 Kafka 集群的规模和并发连接数,设置合适的最大文件描述符数量。确保设置的值不会限制 Kafka 的正常运行和扩展性。直接给一个很大的数就好
  • 可能的异常: 如果设置的最大文件描述符数量不足,可能会导致 Kafka 无法处理更多的连接请求或文件操作,影响系统的性能和可用性。

session.timeout.ms

  • 作用: 它定义了消费者与集群之间的会话超时时间,以毫秒为单位。如果消费者在此超时时间内没有向服务器发送心跳,那么服务器将视为该消费者已经死亡,并将其分区重新分配给其他消费者。
  • 生产环境配置: 这个参数的设置取决于网络延迟、消费者负载和集群的负载等因素。一般来说,它应该设置为超过 heartbeat.interval.ms 的两倍,以确保在心跳检测失败之前有足够的时间来处理网络延迟和其他因素引起的延迟。无脑设置为6s
  • 可能的异常: 如果将 session.timeout.ms 设置得过小,可能会导致频繁的消费者重新分配和分区再均衡,影响性能和稳定性。而如果设置得过大,可能会延长故障检测时间,导致消息消费者的故障无法及时检测和处理。

heartbeat.interval.ms

  • 作用: 它定义了消费者发送心跳到群组协调器的频率,以毫秒为单位。心跳用于告知群组协调器消费者仍然活跃,同时也用于触发重新分配分区的过程。
  • 生产环境配置: 这个参数的设置也受到网络延迟、消费者负载和集群的负载等因素的影响。通常建议将它设置为 session.timeout.ms 的三分之一,以确保足够频繁地发送心跳,避免被误认为是死亡消费者。无脑设置为2s
  • 可能的异常: 如果将 heartbeat.interval.ms 设置得过小,可能会导致频繁的心跳发送,增加了网络负载并可能引起性能问题。而如果设置得过大,可能会延长检测到故障的时间,导致消费者在故障时无法及时重新分配分区并接管消息处理。

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

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

相关文章

Long long类型比较大小

long 与 Long long类型和Long类型是不一样,long类型属于基本的数据类型,而Long是long类型的包装类。 结论 long是基本数据类型,判断是否相等时使用 ,即可判断值是否相等。(基本数据类型没有equals()方法&#xff0…

JVM之EhCache缓存

EhCache缓存 一、EhCache介绍 在查询数据的时候,数据大多来自数据库,咱们会基于SQL语句的方式与数据库交互,数据库一般会基于本地磁盘IO的形式将数据读取到内存,返回给Java服务端,Java服务端再将数据响应给客户端&am…

Ubuntu下使用vscode进行C/C++开发:进阶篇

在vscode上进行C/C++开发的进阶需求: 1) 编写及调试源码时,可进行断点调试、可跨文件及文件夹进行函数调用。 2) 可生成库及自动提取对应的头文件和库文件。 3) 可基于当前工程资源一键点击验证所提取的库文件的正确性。 4) 可结合find_package实现方便的调用。 对于第一…

LLM之RAG实战(三十五)| 使用LangChain的3种query扩展来优化RAG

RAG有时无法从矢量数据库中检索到正确的文档。比如我们问如下问题: 从1980年到1990年,国际象棋的规则是什么? RAG在矢量数据库中进行相似性搜索,来查询与国际象棋规则问题相关的相关文档。然而,在某些情况下&#xff0…

mysql修改用户权限

https://blog.csdn.net/anzhen0429/article/details/78296814

Elasticsearch 和 Kibana 8.13:简化 kNN 和改进查询并行化

作者:Gilad Gal, Tyler Perkins, Srikanth Manvi, Aris Papadopoulos, Trevor Blackford 在 8.13 版本中,Elastic 引入了向量搜索的重大增强,并将 Cohere 嵌入集成到其统一 inference API 中。这些更新简化了将大型语言模型(LLM&a…

java数据结构与算法刷题-----LeetCode278. 第一个错误的版本

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 二分查找 二分查找 解题思路:时间复杂度O( l o g 2 …

Unity照片墙简易圆形交互效果总结

还要很多可以优化的点地方,有兴趣的可以做 比如对象的销毁和生成可以做成对象池,走到最左边后再移动到最右边循环利用 分析过程文件,采用Blender,资源已上传,可以播放动画看效果,下面截个图: …

将MATLAB的图无失真复制到illustrator

选择复制选项 设置图元文件 复制到illustrator,可以看到每个图片部件都可以操作并且放大无失真

芒果YOLOv8改进145:全新风格原创YOLOv8网络结构解析图

&#x1f4a1;本篇分享一下个人绘制的原创全新风格 YOLOv8网络结构图 感觉搭配还行&#xff0c;看着比较直观。 该专栏完整目录链接&#xff1a; 芒果YOLOv8深度改进教程 订阅了专栏的读者 可以获取一份 <可以自行修改 / 编辑> 的 YOLOv8结构图修改源文件 YOLOv8结构图…

康耐视visionpro-CogBlobTool工具详细说明

CogBlobTool功能说明: 通过设置灰度值提取感兴趣区域,并分析所提取区域的面积、长宽等参数。 CogBlobTool操作说明: ①.打开工具栏,双击或点击鼠标拖拽添加CogBlobTool工具 ②.添加输入图像:单击鼠标右键“链接到”或以连线拖拽的方式选择相应输入源 ③.极性:“白底黑点…

康耐视visionpro-CogFindCircleTool工具详细说明

CogFindCircleTool功能说明: 通过用多个卡尺找到多个点来拟合所要找的圆 CogFindCircleTool操作说明: ①.打开工具栏,双击或点击鼠标拖拽添加CogFindCircleTool工具 ②.添加输入图像,右键“链接到”或以连线拖拽的方式选择相应输入源 ③.预期的圆弧:设置预期圆弧的中心点…

基于ssm的bbs论坛系统

开发环境&#xff1a;idea 前端&#xff1a;JQueryBootstraplayui后端&#xff1a;SpringSpringMVCMybatis数据库&#xff1a;mysqlredis 基于ssm的bbs论坛系统&#xff0c;功能有论坛、导读、动态、排行榜以及后台管理系统等等 话不多说&#xff0c;看图&#xff01;&#x…

VTK 9.2.6 加 QT6 编译

上一篇的example编译VTK 9.2.6 源码和VTK Examples 编译 Visual Studio 2022 增加 VTK_GROUP_ENABLE_Qt 为yes 指定QT6-DIR的路径为 C:\Qt\6.6.3\mingw_64\lib\cmake\Qt6

Android room 在dao中不能使用挂起suspend 否则会报错

错误&#xff1a; Type of the parameter must be a class annotated with Entity or a collection/array of it. kotlin.coroutines.Continuation<? super kotlin.Unit> $completion); 首先大家检查一下几个点 一、kotlin-kapt 二、 是否引入了 room-ktx 我是2024年…

康耐视visionpro-CogCaliperTool工具详细说明

CogCaliperTool功能说明: 卡尺工具,用于测量距离 CogCaliperTool操作说明: ①.打开工具栏,双击或点击鼠标拖拽添加CogCaliperTool ②.添加输入图像,右键“链接到”或以连线拖拽的方式选择相应输入源 ③.拖动屏幕上的矩形框到需要测量的位置。卡尺的搜索框角度与边缘不平…

C/C++ ③ —— C++11新特性

1. 类型推导 1.1 auto auto可以让编译器在编译期就推导出变量的类型 auto的使⽤必须⻢上初始化&#xff0c;否则⽆法推导出类型auto在⼀⾏定义多个变量时&#xff0c;各个变量的推导不能产⽣⼆义性&#xff0c;否则编译失败auto不能⽤作函数参数在类中auto不能⽤作⾮静态成员…

MYSQL数字函数:不可不知的数据处理利器

&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自&#xff1a;MYSQL数字函数&#xff1a;不可不知的数据处理利器 ✨​​​​​…

快速上手Spring Cloud 十五:与人工智能的智慧交融

快速上手Spring Cloud 一&#xff1a;Spring Cloud 简介 快速上手Spring Cloud 二&#xff1a;核心组件解析 快速上手Spring Cloud 三&#xff1a;API网关深入探索与实战应用 快速上手Spring Cloud 四&#xff1a;微服务治理与安全 快速上手Spring Cloud 五&#xff1a;Spring …

使用pytorch构建一个无监督的深度卷积GAN网络模型

本文为此系列的第二篇DCGAN&#xff0c;上一篇为初级的GAN。普通GAN有训练不稳定、容易陷入局部最优等问题&#xff0c;DCGAN相对于普通GAN的优点是能够生成更加逼真、清晰的图像。 因为DCGAN是在GAN的基础上的改造&#xff0c;所以本篇只针对GAN的改造点进行讲解&#xff0c;其…