Kafka的部分初始化参数的学习与整理
Kafka的部分初始化参数的学习与整理
背景
前段时间跟同事一起处理过kafka的topic offset的retention 时间与 log 的retention时间不一致.
导致消息还有, 但是offset 没有, 导致重复消费的问题.
发现很多产品其实参数很复杂, 不能只看一个参数就立马进行修改.
应该完整细致的了解各种参数再做处理才可以.
又因为上个月比较忙, 很多东西没有系统的整理. 现在已经11月了.想着重新整理一下之前遇到的问题, 备忘.
部分参数汇总
# 需要注意这些参数主要是单节点的测试验证环境, 所以不能直接用于生产环境.
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
retention.ms=604800000
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
message.max.bytes=52428800
replica.fetch.max.bytes=62914560
部分参数的学习与使用-留存时间
log.retention.minutes=10080
offsets.retention.minutes=10080
注意 这两个参数是配置文件里面用的
如果是使用命令行创建需要使用如下的参数:
retention.ms=604800000
这两个参数最好一致起来, 避免出现背景里面的问题.
也需要根据系统要求和容量空间进行权衡, 一定要避免出现消息对视的情况.
磁盘满可能会hang住系统, 但不是致命的
如果数据被删掉了, 可能就是很致命的问题了.
参数的使用方式:
1. 可以放到:
/kafka/config/kraft/server.properties
里面 作为所有topic的默认参数
2. 可以使用 kafka-topics.sh 脚本进行创建
bin/kafka-topics.sh --bootstrap-server 192.168.254.206:9092 --create --topic test --partitions 1 --replication-factor 1 \
--config retention.ms=604800000
查看具体topic的信息
bin/kafka-topics.sh --describe -topic test --bootstrap-server 192.168.254.206:9092
效果为:
Configs: segment.bytes=1073741824,retention.ms=604800000,max.message.bytes=52428800
一个解释:
消息保留多长时间通过以下配置项进行设置:
log.retention.hours
log.retention.minutes
log.retention.ms
解释:以上三个配置项控制一条消息数据被保存多长时间。优先级 ms>minutes>hours 。
log.retention.hours=168表示默认保存 7 天的数据,自动删除 7 天前的数据。
Topic级别配置项:
retention.ms=604800000
Topic级别参数会覆盖broker级别参数,显然对所有topic统一留存7天的设置是不合理的。
Topic级别参数的配置,可以通过bin/kafka-topics.sh、bin/kafka-configs.sh在创建 Topic 时或修改 Topic 时进行设置:
bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic test --partitions 3 --replication-factor 1 --config retention.ms=100000000000
部分参数的学习与使用-消息大小设置
配置文件里面的参数是:
message.max.bytes=52428800
但是使用命令的话 是这一个:
bin/kafka-topics.sh --bootstrap-server 192.168.254.206:9092 --create --topic test3 --partitions 1 --replication-factor 1 \
--config retention.ms=604800000 --config max.message.bytes=52428899
查看具体信息:
bin/kafka-topics.sh --describe -topic test3 --bootstrap-server 192.168.254.206:9092
验证 topic级别的参数可以覆盖 broker 配置节里面的参数.
参数的修改
可以修改已经参数的配置
bin/kafka-configs.sh --bootstrap-server 192.168.254.206:9092 -topic test --alter --add-config retention.ms=1234567890
bin/kafka-configs.sh --bootstrap-server 192.168.254.206:9092 -topic test --alter --add-config max.message.bytes=9999999
修改之前查看的信息为:
bin/kafka-topics.sh --describe -topic test --bootstrap-server 192.168.254.206:9092
修改之前为:
Configs: segment.bytes=1073741824,retention.ms=604800000,max.message.bytes=52428800
修改之后为:
segment.bytes=1073741824,retention.ms=1234567890,max.message.bytes=9999999
注意一次只能够修改增加一个参数, 不能多个参数一起增加.
Kafka的部分初始化参数的学习与整理的更多相关文章
- Mysql一些重要配置参数的学习与整理系列
http://my.oschina.net/realfighter/blog?catalog=585558&temp=1467909771588
- javaee学习-servlet初始化参数
1.需要定义ServletConfig对象来接收servlet配置的初始化参数. 2.当servlet配置了初始化参数后,web容器在创建servlet实例对象时, 会自动将这些初始化参数封装到Ser ...
- ORACLE初始化参数文件概述
ORACLE初始化参数文件概述 在9i之前,参数文件只有一种,它是文本格式的,称为pfile,在9i及以后的版本中,新增了服务器参数文件,称为spfile,它是二进制格式的.这两种参数文件都是用来存储 ...
- Spring MVC初始化参数绑定
初始化参数绑定与类型转换很类似,初始化绑定时,主要是参数类型 ---单日期 在处理器类中配置绑定方法 使用@InitBinder注解 在这里首先注册一个用户编辑器 参数一为目标类型 proper ...
- SpringMVC初始化参数绑定--日期格式
一.初始化参数绑定[一种日期格式] 配置步骤: ①:在applicationcontext.xml中只需要配置一个包扫描器即可 <!-- 包扫描器 --> <context:comp ...
- SpringMvc中初始化参数绑定
初始化参数绑定与类型转换很类似,初始化绑定时,主要是参数类型 ---单日期 在处理器类中配置绑定方法 使用@InitBinder注解 在这里首先注册一个用户编辑器 参数一为目标类型 proper ...
- springmvc的初始化参数绑定
一.springmvc的初始化参数绑定 此种和我们之前说的类型转换非常相似,可以看作是一种类型转换 在初始化参数绑定时 重要的是参数类型 -------------------单日期的绑定 二. 配 ...
- Qt中新建类构造函数的初始化参数列表
使用Qt-creator自动生成一个窗体应用程序时会自动创建一个新的类,我的程序中名为MyDialog,类的定义为: #ifndef MYDIALOG_H #define MYDIALOG_H #in ...
- JavaWeb---通过ServletConfig获取Servlet的初始化参数
package com.zyz; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import j ...
- 机器学习&数据挖掘笔记_23(PGM练习七:CRF中参数的学习)
前言: 本次实验主要任务是学习CRF模型的参数,实验例子和PGM练习3中的一样,用CRF模型来预测多张图片所组成的单词,我们知道在graph model的推理中,使用较多的是factor,而在grap ...
随机推荐
- Feign源码解析:初始化过程(三)
背景 前面两篇讲了下,在一个典型的引入了feign.loadbalancer.nacos等相关依赖的环境中,会有哪些bean需要创建. 其中第一篇讲了非自动配置的bean,第二篇是自动配置的bean. ...
- 你真的会用 npx 吗❓❓❓
Hello,大家好! 日常开发中大家应该经常使用 npm install xxx 来安装包依赖,那是否注意到npm升级到 npm@5.2.0 之后,在 npm 二进制命令旁边安装了一个 npx 二进制 ...
- RabbitMQ系列:windows、centos和docker下环境安装和使用
一.Windows环境下安装 1.erlang下载:https://www.erlang-solutions.com/resources/download.html 或者:https://www.er ...
- 5大特性,带你认识化繁为简的华为云CodeArts Deploy
摘要:2月27日,华为云发布持续部署服务CodeArts Deploy,通过模块化自由编排部署流程,实现软件的自动化部署,帮助企业软件产品的快速.高效.高质量交付. 本文分享自华为云社区<化繁为 ...
- 如何上传苹果ipa安装包?
如何上传苹果ipa安装包? 引言 在将应用程序上架到苹果应用商店之前,开发者需要学习如何上传ipa安装包.本文将介绍使用appuploader工具将ipa安装包上传到苹果应用商店的详细步骤,并提供 ...
- 治理效率提升77%!揭秘基于DataLeap实时健康分的最佳实践
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 背景 某企业实时数仓团队通过数据收集.整合.计算和存储构建实时数据仓库,为企业提供快速.准确.可靠的实时数据分析和 ...
- 零售品牌如何挑选达人 KOL?火山引擎 VeDI 有妙招!
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 国内消费市场正在发生一些新变化. 近日,由中国人民大学国家发展与战略研究院.经济学院等联合主办的第 57 期宏观经 ...
- Netty ChannelFuture 监听三种方法
以下是伪代码 方法一 前后代码省略 //绑定服务器,该实例将提供有关IO操作的结果或状态的信息 ChannelFuture channelFuture = bootstrap.bind(); this ...
- 万物皆可秒——淘宝秒杀Python脚本,扫货618,备战双11!
更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. 总是抢不到想要的宝贝?试试Python脚本 对于淘宝.天猫,相信大家已经无比的熟悉,在每年的双十一.双十 ...
- Sunshine + Moonlight 纯软件实现全平台设备作 Linux 副屏
目录 初识 Moonlight 部署 Sunshine 服务端与 Moonlight 客户端 创建虚拟显示屏 写一个创建屏幕的脚本(可选) 将副屏进行串流 已知问题 最近,我想要通过视频学习一些技术知 ...