配置管理
kafka-configs脚本管理配置,支持修改(alter)和查看(describe)配置两个基本操作
对于配置类型entity-type包含topics、clients、users、brokers
- topics 指定主题名称
- clients 指定客户端id
- users 设置了用户权限控制的用户名
- brokers 对应kafka代理的broke.id值
对于这些配置存储在zookeeper中,写在zookeeper的 /config/<entity-type>/<entity-name>节点中,由于配置存储在zookeeper中,所以zookeeper参数是必传的
若是修改类型的操作(alter)
将相应配置写入/config/<entity-type>/<entity-name>节点中,在zookeeper中使用get /config/<entity-type>/<entity-name> 命令查看
在/config/changes/节点下创建一个以configchange为前缀,之后连接按序递增的10位数字 通过get /config/changes/config_change_seqNo命令查看该节点信息
若是查看类型操作(describe),则从/config/<entity-type>/<entity-name>节点的元数据信息中获取config对应的配置
脚本
1 | exec $(dirname $0)/kafka-run-class.sh kafka.admin.ConfigCommand "$@" |
配置命令
主题级别配置
1 | #查看主题配置 |
代理级别配置
提供了对于副本传输流量控制的配置,在分区迁移时很有用,通过对复制流量合理的控制,可以实现数据间的平滑迁移。
follower.replication.throttled.rate 设置Follower复制的速率,单位B/s
leader.replication.throttled.rate 设置Leader节点传输速率,单位B/s
1 | #修改/新增配置 |
客户端/用户级别配置
仅支持配置生产者每秒最多写入消息的字符数(producer_byte_rate)以及消费者每秒拉取消息的字节数(consumer_byte_rate),称为流控设置
为用户添加流控
1 | 为用户mm配置生产者和消费者流量控制 在zookeeper的/config/users路径下创建mm节点,并将相应的限流信息存储到该节点中 |
为客户端添加流控
1 | 为客户端acl配置生产者和消费者流量控制 在zookeeper的/config/clients路径下创建节点,并将相应的限流信息存储到该节点中 |
为特定用户的客户端添加流控
1 | 同时指定用户和客户端 |