kafka 代理相关配置
一、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模式
推荐阅读
-
Nginx配置:探索与这个开源服务器相关的设置
-
linux防火墙相关配置命令及操作(centos和ubuntu)
-
如何配置LNMP和Nginx进行反向代理
-
简单聊聊如何在Maven中配置单元测试的代理设置
-
Intellij IDEA 插件开发入门详解 - 如何添加 Application 和 Project Component,并创建 Action? 在本文中,我们将详细介绍如何在 IntelliJ IDEA 中添加 Application 和 Project Component,并且通过这些组件来创建一个简单的 Action。 首先,我们将在 src 目录上使用 Alt+Insert 快捷键打开 New 对话框,然后从中选择 Application Component 并输入名称如 MyComponent。接下来,我们在 MyComponent 类中添加一个 sayHello 方法并编写相关逻辑。 然后,我们需要为我们的插件添加一个 Action,使用户可以通过菜单或其它方式访问它。为此,我们将创建一个新的类 SayHelloAction 继承自 AnAction 类,并在 actionPerformed 方法中获取 Application 和 MyComponent 对象,最后调用 MyComponent 的 sayHello 方法。 最后,我们需要为我们的插件配置相关的文件以确保它可以正常运行。在本文中,我们将详细介绍如何进行这些配置。
-
vscode配置cmake c++项目(编译、调试)-安装vscode插件,配置相关环境
-
在 Linux 中,如何解决 Chrome 浏览器无法在设置中配置代理的问题
-
如何在Linux中使用SSH命令建立SOCKS5代理并将其配置为浏览器的连接代理进行测试
-
NLB部署完成,但不同网络段间连接故障?接下来关注邮件服务器域名解析及其它相关配置步骤
-
构建三层交换与VTP、STP及Eth-Trunk融合实验:基于双核架构实现高效、稳定、冗余网络" 实验目标: 利用双核心结构,整合三层交换技术、VTP (Virtual Trunking Protocol)、生成树协议 (STP) 和以太网通道 (Eth-Trunk),达成网络高速切换、高可用性、高可靠性和备份连接,适用于双核心拓扑场景。 实验步骤: 1. VLAN划分与IP地址规划: - VLAN10:192.168.10.0/24,默认网关192.168.10.1 - VLAN20:192.168.20.0/24,默认网关192.168.20.1 - VLAN30:192.168.30.0/24,默认网关192.168.30.1 - VLAN40:192.168.40.0/24,默认网关192.168.40.1 2. MSW1三层交换机配置: - 开启三层路由功能:`MSW1(config)#ip routing` - 配置Trunk接口:`MSW1(config-if-range)#switchport trunk encapsulation dot1q; switchport mode trunk` - 设置VTP域和模式:`MSW1(config)#vtp domain test; vtp mode server; vtp password cisco; vtp version 2` - 创建并命名VLAN:`MSW1(config)#vlan 10; MSW1(config-vlan)#name caiwu; ... (为其他VLAN重复操作)` - 分配VLAN IP地址:`MSW1(config-if)#int vlan 10; ip address 192.168.10.1 255.255.255.0; no shutdown; ... (为其他VLAN重复操作)` - 配置生成树优先级:`MSW1(config)#spanning-tree vlan 10,20 root primary; MSW1(config)#spanning-tree vlan 30,40 root secondary` - 链接Eth-Trunk通道:`MSW1(config-if-range)#channel-group 1 mode on; ... (为其他相关接口重复操作)` 3. MSW2三层交换机配置类似MSW1,只需更改VLAN名称和IP地址以及相关端口配置即可。 通过以上步骤,两台三层交换机之间可通过Eth-Trunk实现高速数据交互,并通过VTP统一管理VLAN资源,STP则确保了网络流量的负载均衡,从而构建了一个高效、稳定且具备冗余保护的网络环境。