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 ...
随机推荐
- 26、Flutter中命名路由
Flutter 中的命名路由 main.dart中配置路由 void main() { runApp(MaterialApp( theme: ThemeData( appBarTheme: const ...
- CUDA C编程权威指南:1.2-CUDA基础知识点梳理
主要整理了N多年前(2013年)学习CUDA的时候开始总结的知识点,好长时间不写CUDA代码了,现在LLM推理需要重新学习CUDA编程,看来出来混迟早要还的. 1.闭扫描和开扫描 对于一个二元 ...
- 在线编辑Word——插入公式
在Word中可插入多种公式,用于满足于不同运算场景需求,从基本的运算符到大型的运算公式,我们可以根据文档内容的编排需要,任意插入所需公式.下面,介绍如何通过在线编辑Word的方式,向Word中插入公式 ...
- 干了三年的Java,你竟然还不会MySQL性能优化
摘要:MySQL性能优化就算通过合理安排资源,调整系统参数使MySQL运行更快,更节省资源.MySQL性能优化包括查询速度优化,更新速度优化,MySQL服务器优化等等. 前言 MySQL性能优化就算通 ...
- GaussDB拿下的安全认证CC EAL4+究竟有多难?
摘要:近日,经过全球知名独立认证机构SGS Brightsight实验室的安全评估,华为云GaussDB企业级分布式数据库内核获得全球权威信息技术安全性评估标准CC EAL4+级别认证 本文分享自华为 ...
- 想了解Python中的super 函数么
摘要:经常有朋友问,学 Python 面向对象时,翻阅别人代码,会发现一个 super() 函数,那这个函数的作用到底是什么? 本文分享自华为云社区<Python 中的 super 函数怎么学, ...
- 华为云GaussDB(for Influx)揭密第六期:数据分级存储
摘要:GaussDB(for Influx)通过冷热数据存储分离,在提供海量数据高性能存储的同时可节省85%的存储成本,高效满足时序应用各种场景. 本文分享自华为云社区<华为云GaussDB(f ...
- Unity3D 导出的apk进行混淆加固、保护与优化原理(防止反编译)
Unity3D 导出的apk进行混淆加固.保护与优化原理(防止反编译) 目录 前言: 准备资料: 正文: 1:打包一个带有签名的apk 2:对包进行反编译 3:使用ipaguard来对程序进行加固 ...
- DataLeap的全链路智能监控报警实践(二):概念介绍
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 概念介绍 基线监控 根据监控规则和任务运行情况,DataLeap的基线监控能够决策是否报警.何时报警.如何报警以及 ...
- 强强联合,ByteHouse 携手亚马逊云科技,新一代云数仓服务重磅升级
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 随着全球化的发展,越来越多的中国企业开始涉足海外市场,开展跨境业务.在这个过程中,强大的数据分析能力是出海企业不可 ...