1.创建Topic: kafka-topics.sh
./kafka-topics.sh --create --zookeeper node1:2181,node2:2181,node3:2181 --topic test01 --partitions 3 --replication-factor 2
必备选项:
1- 执行什么操作 --create 表示为创建
2- 连接地址: 建议是zookeeper地址 --zookeeper node1:2181,node2:2181,node3:2181
3- 创建的topic的名字: --topic test01
4- topic有多少个分片: --partitions 3
5- 每个分片有多少个副本: --replication-factor 2
2.查看当前有那些topic
./kafka-topics.sh --list --zookeeper node1:2181,node2:2181,node3:2181
3.查看某一个topic的详细信息
查看每一个topic的详细信息:
./kafka-topics.sh --describe --zookeeper node1:2181,node2:2181,node3:2181查看某一个topic的详细信息:
./kafka-topics.sh --describe --zookeeper node1:2181,node2:2181,node3:2181 --topic test01
4. 如何修改Topic
Topic 仅允许增大分片, 不允许减少分片, 同时也不支持修改副本数量
增大分区:
./kafka-topics.sh --alter --zookeeper node1:2181,node2:2181,node3:2181 --topic test01 --partitions 5
5.如何删除Topic
./kafka-topics.sh --delete --zookeeper node1:2181,node2:2181,node3:2181 --topic test01
注意:
默认情况下, 删除一个topic 仅仅是标记删除, 主要原因: kafka担心误删数据, 一般需要用户手动删除
如果想执行删除的时候, 直接将topic完整的删除掉: 此时需要在server.properties 配置中修改一个配置为true
delete.topic.enable=true
如果topic中的数据量非常少, 或者说没有任何的数据的时候, 此时topic会自动先执行逻辑删除, 然后在物理删除, 不管是否配置了delete.topic.enable=true
6.如何模拟生产者
./kafka-console-producer.sh --broker-list node1:9092,node2:9092,node3:9092 --topic test01
7.如何模拟消费者
./kafka-console-consumer.sh --bootstrap-server node1:9092,node2:9092,node3:9092 --topic test01
默认从当前时间开始消费数据, 如果想从头开始消费, 可以添加 --from-beginning 参数即可