kafka/bin/目录下文件结构如下:
kafka-console-consumer.sh
作用:通过控制台订阅并接收消息。
使用:
#订阅主题topic-demo,并处于等待消息的状态
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-demo
kafka-console-producer.sh
作用:通过控制台发送消息。
使用:
#打开生产者终端,在窗口光标闪动时,可发送消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic-demo
kafka-server-start.sh
作用:启动Kafka服务。
使用:
#控制台启动Kafka服务(不建议该方式。因为如果关闭控制台,则服务会停止)
bin/kafka-server-start.sh config/server.properties
#后台启动Kafka服务
bin/kafka-server-start.sh -daemon config/server.properties
#后台启动Kafka服务
bin/kafka-server-start.sh config/server.properties &
kafka-topics.sh
作用:管理主题。包括创建主题、查看主题信息、修改主题和删除主题等操作。该脚本有5种指令类型:create、list、describe、alter、delete。
使用:
#创建主题
bin/kafka-topics.sh --zookeeper localhost:2181/kafka --create --topic topic-demo --partitions 4 --replication-factor 2
#查看当前所有可用的主题
bin/kafka-topics.sh --zookeeper localhost:2181/kafka -list
#查看单个主题的详细信息,包括分区和副本的分配细节
bin/kafka-topics.sh --zookeeper localhost:2181/kafka --describe --topic topic-demo
#如果不使用--topic指定主题,则会展示出所有主题的详细信息
bin/kafka-topics.sh --zookeeper localhost:2181/kafka --describe
#增加主题的分区数(目前kafka不支持减少分区数)
bin/kafka-topics.sh --zookeeper localhost:2181/kafka --alter --topic topic-demo --partitions 3
#修改主题的配置,覆盖原配置
bin/kafka-topics.sh --zookeeper localhost:2181/kafka --alter --topic topic-demo --config max.message.bytes=20000
#删除主题
bin/kafka-topics.sh --zookeeper localhost:2181/kafka --delete --topic topic-demo
kafka-configs.sh
作用:专门用于修改配置。不仅支持操作主题相关的配置,还支持操作broker、用户和客户端这3个类型的配置。该脚本包含 alter 和 describe 这两种指令类型。
使用:
#查看主题详细信息
bin/kafka-configs.sh --zookeeper localhost:2181/kafka --describe --entity-type topics --entity-name topic-demo
#增加配置(使用alter指令变更配置时,需要配合add-config和delete-config一起使用)
bin/kafka-configs.sh --zookeeper localhost:2181/kafka --alter --entity-type topics --entity-name topic-demo --add-config cleanup.policy=compact,max.message.bytes=10000
#删除配置
bin/kafka-configs.sh --zookeeper localhost:2181/kafka --alter --entity-type topics --entity-name topic-demo --delete-config cleanup.policy,max.message.bytes
kafka-reassign-partitions.sh
作用:分区重分配。该脚本可以在集群扩容、broker节点失效的场景下对分区进行迁移。
使用:
分三步:
(1)创建一个包含主题清单的JSON文件;
(2)根据主题清单和broker节点清单生成一份重分配方案;
(3)根据这份方案执行具体的重分配动作。