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 ...
随机推荐
- linux文件和文件夹的筛选、查找及用户和组管理命令
1.列出当前系统上所有已经登陆的用户的用户名, 注意:同一个用户登录多次,则只显示一次即可. 查看系统用户的命令为: (1)getent passwd 查看系统上的所有用户信息 (2)w 查看登录用户 ...
- java判断两个日期是否连续
使用java判断两个日期的天是否连续 import java.text.SimpleDateFormat; import java.util.Date; /** * @author lingkang ...
- 云小课|聊一聊DRS的数据过滤特性
[本期推荐专题]在DevOps市场中,华为云DevCloud拔得头筹,看它如何助力企业面对商业环境瞬息万变快速响应. [摘要] 目前,DRS已支持其他云.本地IDC.ECS自建MySQL.SQL Se ...
- OpenMetric与时序数据库模型之主流TSDB分析
摘要:为大家带来当下时序数据模型的主流TSDB分析及云厂商在时序数据模型方面的最新动态. 本文分享自华为云社区<[万字干货]OpenMetric与时序数据库存储模型分析(下)>,作者:敏捷 ...
- Vue混淆与还原
引言 Vue是一种流行的JavaScript框架,用于构建用户界面.它简单易用且功能强大,备受开发者喜爱.然而,在传输和存储过程中,我们需要保护Vue代码的安全性.混淆是一种有效的保护措施,可以加 ...
- C# 写日志文件
常用方法: public class FileHelper { private static void Write(string fileName, byte[] bytes) { FileStrea ...
- CentOS7 Docker 安装,配置国内镜像
删除已有Docker sudo yum remove docker \ docker-ce \ docker-client \ docker-client-latest \ docker-common ...
- #1198:Farm Irrigation(DFS + 并查集)
Farm Irrigation **Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- AtCoder Beginner Contest 174 个人题解(ABC水题,D思维,E题经典二分,F离线树状数组)
做完本期以后,最近就不会再发布 AtCoder 的往届比赛了(备战蓝桥杯ing) 补题链接:Here ABC题都是水题,这里直接跳过 D - Alter Altar 题意:一个R-W串,可以进行两种操 ...
- OKR之剑·实战篇05:OKR致胜法宝-氛围&业绩双轮驱动(上)
作者:vivo 互联网平台产品研发团队 本文是<OKR 之剑>系列之实战第 5 篇-- 我们的OKR执行如此顺利,离不开我们的"双轮驱动".类似于亚马逊的"飞 ...