当前位置: 首页 > news >正文

kafka---broker相关配置

一、Broker 相关配置

1、一般配置

broker.id

当前kafka服务的sid(server id),在kafka集群中,该值是唯一的(unique),如果未设置此值,kafka会自动生成一个int值;为了防止自动生成的值与用户设置的值冲突,自动生成的逻辑是从reserved.broker.max.id + 1这个值开始。

Type: int
Default: -1
Valid Values:
Importance: high
Update Mode: read-only

reserved.broker.max.id

用户可以设置broker.id的最大值,自动生成的broker.id从reserved.broker.max.id + 1这个值开始

Type: int
Default: 1000
Valid Values: [0,…]
Importance: medium
Update Mode: read-only

broker.id.generation.enable

开启自动生成brokerid的功能

Type: boolean
Default: true
Valid Values:
Importance: medium
Update Mode: read-only

注意 1000以上的Broker ID现在默认保留为自动分配的Broker ID。如果集群的现有broker id高于该阈值,请确保相应地增加reserved.broker.max.id broker配置属性。

advertised.listeners

kafka会将该监听地址注册到zk上,同时该地址也是客户端访问地址,如果该值未设置,则将同listeners,与listeners不同的是,advertised.listeners无法使用0.0.0.0地址

Type: string
Default: null
Valid Values:
Importance: high
Update Mode: per-broker

2、 日志数据相关配置

log.dir

存储数据的目录
Type: string
Default: /tmp/kafka-logs
Valid Values:
Importance: high
Update Mode: read-only

log.dirs

逗号分隔的路径列表,用于存放数据,如果未设置,则使用log.dir
Type: string
Default: null
Valid Values:
Importance: high
Update Mode: read-only

log.flush.interval.messages

在一个日志分区( log partition)上需要达到多少个消息,才会将这些消息持久化(刷新)到磁盘上

Type: long
Default: 9223372036854775807
Valid Values: [1,…]
Importance: high
Update Mode: cluster-wide

log.flush.interval.ms

topic中的消息存放在内存中的最大时间,超过这个时间就会被刷新到磁盘上,如果未设置,就使用
log.flush.scheduler.interval.ms

Type: long
Default: null
Valid Values:
Importance: high
Update Mode: cluster-wide

log.flush.scheduler.interval.ms

log flusher检查日志是否需要刷新到磁盘的频率

3、ZK相关配置

zookeeper.connect

指定ZK服务器的连接串,格式hostname:port,为了保障高可用,一般要指定多个地址,即hostname:port,hostname1:port1,hostname2:port2;也可以在配置连接串的时候指定根路径(chroot path),即hostname1:port1,hostname2:port2,hostname3:port3/chroot/path

Type: string
Default: null
Valid Values:
Importance: high
Update Mode: read-only

zookeeper.connection.timeout.ms

kafka连接zk的超时时长,如果未设置,将会使用zookeeper.session.timeout.ms值

Type: int
Default: null
Valid Values:
Importance: high
Update Mode: read-only

zookeeper.session.timeout.ms

kafka连接zk的一个session的超时时间

Type: int
Default: 18000 (18 seconds)
Valid Values:
Importance: high
Update Mode: read-only

二、如何更新broker相关配置

broker的配置有三种更新模式:read-only、per-broker、cluster-wide;

  • read-only:需要重启才能生效
  • per-broker: 可以针对每一个broker动态更新
  • cluster-wide:在集群范围内更新,或者针对每一个broker更新(只为了测试)

对于read-only模式配置,只能通过修改config/server.properties配置文件然后重启生效;
对于 per-broker模式的,可以使用命令行进行修改

## 修改
bin/kafka-configs.sh --bootstrap-server localhost:9092 --entity-type brokers --entity-name 0 --alter --add-config log.cleaner.threads=2
## 查询
bin/kafka-configs.sh --bootstrap-server localhost:9092 --entity-type brokers --entity-name 0 --describe
##删除
bin/kafka-configs.sh --bootstrap-server localhost:9092 --entity-type brokers --entity-name 0 --alter --delete-config log.cleaner.threads

对于这些被修改的per-broker模式的配置,会被存储在zk 的==/config/brokers/id==中;
对于 cluster-wide模式的,可以使用命令行进行修改

## 新增
bin/kafka-configs.sh --bootstrap-server localhost:9092 --entity-type brokers --entity-default --alter --add-config log.cleaner.threads=2
## 查询
bin/kafka-configs.sh --bootstrap-server localhost:9092 --entity-type brokers --entity-default --describe

对于这些被修改的cluster-wide模式的配置,会被存储在zk 的==/config/brokers/<default>==中;

注意 在(cluster-wide)集群级别可配置的所有配置也可以在(per-broker)级别进行配置,如果在不同级别定义配置值,则使用以下优先顺序:

  • Dynamic per-broker config stored in ZooKeeper(存储在zk中的 per-broker配置)
  • Dynamic cluster-wide default config stored in ZooKeeper(存储在zk中的 cluster-wide配置)
  • Static broker config from server.properties
    对于一个新启动的kafka,在zk中是没有per-broker和 cluster-wide 动态配置存储的,所以这个时候是以配置文件为主,当对某些动态配置进行配置之后,对应的ZK node中就会有相应数据了,使用顺序如上。

三、kafka-configs.sh 命令详解

kafka-configs.sh 命令必须包含 --alter 或者 --describe 其中一个
kafka-configs.sh --help
kafka-configs.sh --version
–bootstrap-server <lStrng ocalhost:9092> 指定kafka的地址;
–entity-type <String> 指定要修改的实体类型,topics、clients、users、brokers、broker-loggers、ips;
–entity-name String 指定上述实体类型的名;
–entity-default 在上述类型中的cluster-wide范围内更新配置
–alter 修改相应配置
–add-config ’k1=v1‘ 修改或者更新相应配置 log.cleaner.threads=2,多个值,需要用引号引住,并用逗号分隔开,即’k1=v1,k2=v2,k3=[v1,v2,v3]‘
–describe 列出相应配置
–all 列出所有配置
–delete-config String 删除相应配置
–broker id 指定要配置的brokerid
–broker-defaults 更新所有的broker,即cluster-wide模式

http://www.lryc.cn/news/338742.html

相关文章:

  • 【Golang学习笔记】从零开始搭建一个Web框架(二)
  • 高精度地图导航论文汇总
  • 【域适应】基于域分离网络的MNIST数据10分类典型方法实现
  • 从零实现诗词GPT大模型:pytorch框架介绍
  • [目标检测] OCR: 文字检测、文字识别、text spotter
  • Windows环境下删除MySQL
  • uniapp:uview-plus的一些记录
  • OLTP 与 OLAP 系统说明对比和大数据经典架构 Lambda 和 Kappa 说明对比——解读大数据架构(五)
  • 步骤大全:网站建设3个基本流程详解
  • 利用Sentinel解决雪崩问题(二)隔离和降级
  • 基于springboot的房产销售系统源码数据库
  • 【MATLAB】基于Wi-Fi指纹匹配的室内定位-仿真获取WiFi RSSI数据(附代码)
  • 深圳晶彩智能ESP32-3248S035R使用LovyanGFX实现手写板
  • 【Spring Boot】深入解密Spring Boot日志:最佳实践与策略解析
  • ISTQB选择国内版,还是国际版呢
  • 头歌-机器学习 第11次实验 softmax回归
  • Qt for MCUs 2.7正式发布
  • 共享IP和独享IP如何选择,两者有何区别?
  • 文心一言VSchatGPT4
  • Linux 目录结构与基础查看命令
  • 【matlab】如何解决打开缓慢问题(如何让matlab在十几秒内打开)
  • 【stata】求滚动波动情况
  • The C programming language (second edition,KR) exercise(CHAPTER 2)
  • rust实现循环链表
  • 2. Spring的创建和Bean的存取
  • 策略模式【行为模式C++】
  • php中session相关知识(目前了解部分)
  • 从零实现诗词GPT大模型:GPT是怎么生成内容的?
  • 8路HDMI+8路AV高清视频流媒体编码器JR-3218HD
  • LangChain入门:14.LLMChain:最简单的链的使用