Kafka-topic基本操作
1、kafka-topics.sh参数介绍
1.1、查看命令帮忙助
/usr/local/kafka/bin/kafka-topics.sh --help
1.2、属性解析
选项 描述 --alter # 更改分区数,副本分配,和/或主题的配置。 --bootstrap-server <String:server to connect to> # 必需:要连接的 Kafka 服务器。 如果提供此项,则不需要直接的 Zookeeper 连接。 --config <String:name=value> # 设定配置属性 --create # 创建一个新的topic --delete # 删除一个topic --describe # 列出给定主题的详细信息。 --help # 打印帮助信息。 --list # 列出所有可用的topic。 --partitions <Integer: # ofpartitions>设置topic 分区数 --replication-factor <Integer:replication factor> # 指定topic的副本数 --topic <String: topic> # 指定topic 名称 --topics-with-overrides # 如果在描述主题时设置,则仅显示已覆盖配置的主题 --version # 展示Kafka版本 --zookeeper <String: hosts> # 已弃用,zookeeper 连接的连接字符串,格式为 host:port。可以提供多个主机以允许故障转移。
2、kafka-topics管理
2.1、创建topics
2.1.1、命令介绍
kafka-topics.sh --create --zookeeper <host>:<port> --if-not-exists --replication-factor <副本数> --partitions <分区数> --topic <副本名称>
2.1.2、示例
# 2.x版本 创建topic方法 kafka-topics.sh --create --zookeeper 192.168.10.30:2181,192.168.10.31:2181,192.168.10.32:2181 --replication-factor 3 --partitions 3 --topic kafkatest # 3.x版本 创建topic方法 kafka-topics.sh --create --bootstrap-server 192.168.10.30:9092,192.168.10.31:9092,192.168.10.32:9092 --replication-factor 3 --partitions 3 --topic kafkatest
2.2、查询topics
# 2.x版本 查询topic方法 kafka-topics.sh --list --zookeeper 192.168.10.30:2181,192.168.10.31:2181,192.168.10.32:2181 # 3.x版本 查询topic方法 kafka-topics.sh --list --bootstrap-server 192.168.10.30:9092,192.168.10.31:9092,192.168.10.32:9092
2.3、查询topics分区情况
2.3.1、示例
# 2.x版本 查询topic方法 kafka-topics.sh --describe --zookeeper 192.168.10.30:2181,192.168.10.31:2181,192.168.10.32:2181 kafkatest # 3.x版本 查询topic方法 # kafka-topics.sh --describe --bootstrap-server 192.168.10.30:9092,192.168.10.31:9092,192.168.10.32:9092 kafkatest Topic: kafkatest TopicId: pgiw6fLhSRaroMxZwQQeiQ PartitionCount: 3 ReplicationFactor: 3 Configs: Topic: kafkatest Partition: 0 Leader: 1 Replicas: 1,2,3 Isr: 1,2,3 Topic: kafkatest Partition: 1 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1 Topic: kafkatest Partition: 2 Leader: 3 Replicas: 3,1,2 Isr: 3,1,2
2.3.2、属性解析
Topic # topic名称 PartitionCount # 分区数 ReplicationFactor # 定义的分区数 Configs # 配置 Partition # 当前分区位置 Leader # 当前那个broker为Leader Replicas # 副本位置 Isr # lsr同步队列
2.4、删除topics
# 2.x版本 查询topic方法 kafka-topics.sh --delete --zookeeper 192.168.10.30:2181,192.168.10.31:2181,192.168.10.32:2181 --topic kafkatest # 3.x版本 查询topic方法 kafka-topics.sh --delete --bootstrap-server 192.168.10.30:9092,192.168.10.31:9092,192.168.10.32:9092 --topic kafkatest
3、生产者与消费者
3.1、生产消息【kafka-console-producer.sh】
3.1.1、命令介绍
kafka-console-producer.sh --broker-list <kafkaIP1>:<端口> <kafkaIP2>:<端口> --topic <topic名称>
3.1.2、生产消息示例
# kafka-console-producer.sh --broker-list 192.168.10.30:9092,192.168.10.31:9092,192.168.10.32:9092 --topic kafkatest >hello kafka
3.2、消费消息【kafka-console-consumer.sh】
3.2.1、命令介绍
kafka-console-consumer.sh --bootstrap-server <host>:<post> --topic <topic名称> --from-beginning
3.2.2、消费消息示例
# kafka-console-consumer.sh --bootstrap-server 192.168.10.30:9092,192.168.10.31:9092,192.168.10.32:9092 --topic kafkatest --from-beginning hello kafka
3.3、zookeeper查询topics
# /usr/local/zookeeper/bin/zkCli.sh -server 192.168.10.30:2181 [zk: 192.168.10.30:2181(CONNECTED) 0] ls /brokers [ids, seqid, topics] [zk: 192.168.10.30:2181(CONNECTED) 1] ls /brokers/ids [1, 2, 3] [zk: 192.168.10.30:2181(CONNECTED) 2] ls /brokers/topics [__consumer_offsets, kafkatest] [zk: 192.168.10.30:2181(CONNECTED) 3] get /brokers/topics/kafkatest {"partitions":{"0":[1,3,2],"1":[2,1,3],"2":[3,2,1]},"topic_id":"dpeV7n3fSyehh-ebygbwaQ","adding_replicas":{},"removing_replicas":{},"version":3}