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 ...
随机推荐
- K8s和声明式编程
转载:原文链接 认识k8s之后,他的操作模式对我来说是一种很不错的体验.他提供了更接近现实世界的面向对象接口. 什么是k8s? Kubernetes(K8s)是一种开源容器编排平台,用于自动化部署.扩 ...
- 储存入redis并且将次数进行+1
// 储存入redis并且将次数进行+1stringRedisTemplate.opsForValue().increment(RedisKey.LOGIN_FATL_NUM + "1348 ...
- 12、FlutterMediaQuery获取屏幕宽度和高度
final size =MediaQuery.of(context).size; class HomePage3 extends StatelessWidget { const HomePage3({ ...
- 华为云GaussDB(for openGauss)推出重磅内核新特性
摘要:华为云新一代金融级分布式数据库GaussDB(for openGauss)正式推出了Ustore存储引擎.基于Paxos协议的DCF高可用组件等多个重大内核新特性. 数字化时代,技术迭代更新比以 ...
- appuploader 入门使用
回想一下我们发布 iOS 应用,不仅步骤繁琐,非常耗时.一旦其中一步失误了,又得重新来.作为一名优秀的工程师不应该让这些重复的工作在浪费我们的人生.在软件工程里面,我们一直都推崇把重复.流程化的工作交 ...
- .NET Core 在其上下文中,该请求的地址无效。
.NET Core 在其上下文中,该请求的地址无效. 看了端口,发现没被占用,后来发现是IP地址变了 改成正确的IP就可以了.
- Docker 安装 kafka
简单安装为了集成 SpringBoot,真实使用,增加增加更多配置,比如将log映射出来 1.安装 zookeeper [root@centos-linux ~]# docker pull wurst ...
- explain分析
explain分析字段:id.select_type.type.partitions.type.possible_keys.key.key_len.ref.rows.rows.filtered.ext ...
- CO40/CO41转生产订单下达时不能创建采购申请
一.配置 CO01创建生产订单,创建时生成采购申请,改为下达时创建采购申请.通过配置,将预留/采购申请 更改为2即可. 但是CO41和CO40通过配置,并不能达到更改预留/采购申请 为2. 二.调试源 ...
- 服务降级,限流等--sentinel(SpringCloud Alibaba)
一. 介绍Sentinel,中文翻译为哨兵,是为微服务提供流量控制.熔断降级的功能,它和Hystrix提供的功能一样,可以有效的解决微服务调用产生的"雪崩"效应,为微服务系统提供了 ...