1、主题
使用kafka自带命令创建两个主题Topic,名字为: test-topic 和 hello (存储和生产消息都是要发到相应的主题里)
2、主题topic相关操作命令格式:
# ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 3 --topic hello #创建topic hello
# ./kafka-topics.sh --list --zookeeper localhost:2181 #查看主题topic列表,需指定zk的地址
# ./kafka-topics.sh --describe --zookeeper localhost:2181 --topic hello #查看某个具体的主题topic消息
# ./kafka-topics.sh --alter --zookeeper localhost:2181 --topic hello --partitions 5 #修改主题topic信息,增加到5个分区
# ./kafka-topics.sh --delete --zookeeper localhost:2181 --topic hello #删除主题topic hello
3、 创建主题
[root@localhost ~]# cd kafka_2.12-2.3.0/bin/ #进去kafka的二进制程序目录
[root@localhost bin]# ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 3 --topic test-topic #创建topic test-toic
[root@localhost bin]# ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 2 --topic hello #创建topic hello
解释:
--create 是创建主题topic
--zookeeper localhost:2181 主题topic信息是存储在zk中,需要指定zk服务的地址
--replication-factor 1 主题topic信息的副本数,因为现在只要一个节点,所以只能是1,有多个节点时候,可以指定副本数多个
--partitions 3 主题topic有多少个分区
--topic test-topic 指定主题topic的名字
4、查看创建的主题
[root@localhost bin]# ./kafka-topics.sh --list --zookeeper localhost:2181 #查看主题topic列表,需指定zk的地址,共两个主题:
hello
test-topic
(1) 查看某个具体的主题topic消息
[root@localhost bin]# ./kafka-topics.sh --describe --zookeeper localhost:2181 --topic test-topic #查看某个具体的主题topic消息:
...
Topic:test-topic PartitionCount:3 ReplicationFactor:1 Configs:
Topic: test-topic Partition: 0 Leader: 0 Replicas: 0 Isr: 0
Topic: test-topic Partition: 1 Leader: 0 Replicas: 0 Isr: 0
Topic: test-topic Partition: 2 Leader: 0 Replicas: 0 Isr: 0
(2) 查看某个具体的主题topic消息
[root@localhost bin]# ./kafka-topics.sh --describe --zookeeper localhost:2181 --topic hello #查看某个具体的主题topic消息
Topic:hello PartitionCount:2 ReplicationFactor:1 Configs:
Topic: hello Partition: 0 Leader: 0 Replicas: 0 Isr: 0
Topic: hello Partition: 1 Leader: 0 Replicas: 0 Isr: 0
修改topic,只能增加partition个数,不能减少,且不能修改副本数: replicationfactor
5、修改partitions分区数量
[root@localhost bin]# ./kafka-topics.sh --alter --zookeeper localhost:2181 --topic hello --partitions 5 #修改主题topic信息,增加到5个分区
[root@localhost bin]# ./kafka-topics.sh --describe --zookeeper localhost:2181 --topic hello #修改后再查看,增加到了5个分区:
Topic:hello PartitionCount:5 ReplicationFactor:1 Configs:
Topic: hello Partition: 0 Leader: 0 Replicas: 0 Isr: 0
Topic: hello Partition: 1 Leader: 0 Replicas: 0 Isr: 0
Topic: hello Partition: 2 Leader: 0 Replicas: 0 Isr: 0
Topic: hello Partition: 3 Leader: 0 Replicas: 0 Isr: 0
Topic: hello Partition: 4 Leader: 0 Replicas: 0 Isr: 0
6、删除主题topic
[root@localhost bin]# ./kafka-topics.sh --delete --zookeeper localhost:2181 --topic hello #删除主题topic
# vim /root/kafka_2.12-2.3.0/config/server.properties #如果删除不了主题,需要在配置文件中添加启用删除主题功能
# 是否可以删除topic,默认为false
delete.topic.enable=true #增加
#重启kafka服务即可
7、删除后再查看主题
[root@localhost bin]# ./kafka-topics.sh --list --zookeeper localhost:2181 #删除后再查看主题topic列表
test-topic