Kafka 常用命令
主体命令行操作
参数说明
参数 | 描述 |
---|---|
--bootstrap-server <String: server toconnect to> | 连接的 Kafka Broker 主机名称和端口号 |
--topic String:topic | 操作的 topic 名称 |
--create | 创建主题 |
--delete | 删除主题 |
--alter | 修改主题 |
--list | 查看所有主题 |
--describe | 查看主题详细描述 |
--partitions <Integer:#of partitions> | 设置分区数 |
--replication-factor<Integer:replication factor> | 设置分区副本 |
--config String:name=value | 更新系统默认的配置 |
# 创建 topic,指定分区数为 1,副本为 3
kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --topic klvchen --create --partitions 1 --replication-factor 3
# 查看 topic列表
kafka-topics.sh --bootstrap-server 127.0.0.1:9094 --list
# 查看特定 topic 的详情,使用 --topic 与 --describe 参数
kafka-topics.sh --bootstrap-server 127.0.0.1:9094 --topic klvchen --describe
# 修改副本数,副本数只能增加,不能减少
kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --topic klvchen --alter --partitions 4
# 查看正在运行的消费组
kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --list --new-consumer
# 查看 topic 的内容
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic k8s-test-nengguan-mynginx-2022.02.11 --from-beginning
# 查看消息组 ibaboss_mobile 消息堆积情况
kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --describe --group ibaboss_mobile
# 删除 topic
kafka-topics.sh --delete --topic k8s-pre-nengguan-self-control-strategy-2022.01.22 --zookeeper zookeeper-0.zookeeper-hs:2181,zookeeper-1.zookeeper-hs:2181,zookeeper-2.zookeeper-hs:2181
# 查看 topic 保留天数
kafka-configs.sh --bootstrap-server kafka.default.svc.cluster.local:9092 --describe --entity-name test --entity-type topics
# 修改 topic 保留天数,86400000 是一天,可以通过 UI 进行更改
kafka-configs.sh --bootstrap-server kafka.default.svc.cluster.local:9092 --alter --entity-name test --entity-type topics --add-config retention.ms=86400000
-------------------------------------- 测试消息
# 开启一个终端,进入 kafka 容器
kafka-console-producer.sh --bootstrap-server 127.0.0.1:9092 --topic first
# 输入信息
# 开启另外一个终端,进入 kafka 容器
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic_test --from-beginning
# 查看是否正常显示
节点压力均衡
# 第一步:使用集群重新分配命令
kafka-reassign-partitions.sh #重分命令
--bootstrap-server #集群地址
--broker-list #将要分布在那几个broker上面的列表
--topics-to-move-json-file #哪个topic需要重新均衡,这个配置需要一个json文件,结构如下图
--generate #生成计划
# 先创建一个 topic.json 输入如下内容
{ "topics": [{"topic":"topic_a"}],"version":1]}
# 整体代码命令如下
bin/kafka-reassign-partitions.sh --bootstrap-server localhost:9092 --broker-1ist 0,1,2,3,4,5 --topics-to-move-json-file topic.json --generate
# 第二步:将目标计划放入到一个文件中, 创建 new.json 内容是上面生成的 json
bin/kafka-reassign-partitions.sh --bootstrap-server localhost:9092 --reassignment-json-file new.json --execute
# 验证
bin/kafka-reassign-partitions.sh --bootstrap-server localhost:9092 --reassignment-json-file new.json --verify
动态删除broker
这个过程需要将即将删除的broker节点上所管理的topic的分区分摊给其他节点,然后将这个节点删除掉
# 例如: 在列表中将 broker5 删除掉
# 首先创建一个 topic.json 输入如下内容
{"topics":[{"topic":"topic_a"}],"version":1}
# 整体代码命令如下
/bin/kafka-reassign-partitions.sh --bootstrap-server localhost:9092 --broker-list 0,1,2,3,4 --topics-to-move-json-file topic.json --generate
# 列表中只有01 2 3 4
# 第二步:将目标计划放入到一个文件中, 创建 new.json 内容是上面生成的 json
bin/kafka-reassign-partitions.sh --bootstrap-server localhost:9092 --reassignment-json-file new.json --execute