如果对Kafka基本概念不了解,建议先学习一下一些名词的含义:
附上:Kafka入门和进阶
创建主题(创建了一个test主题):
bin/kafka-topics.sh --create --zookeeper 虚拟机IP:2181 --replication-factor 2 --partitions 1 --topic test
注:创建主题时副本数要小于broker数
查看主题:
bin/kafka-topics.sh --list --zookeeper 虚拟机IP:2181
显示主题的详细信息
bin/kafka-topics.sh --describe --zookeeper 虚拟机IP:2181 --topic test
创建一个broker,发布者
bin/kafka-console-producer.sh --broker-list 虚拟机IP:9092 --topic test
创建一个consumer, 消费者
bin/kafka-console-consumer.sh --bootstrap-server 虚拟机IP:9092 --topic test --from-beginning
删除主题:
前提条件: 在启动broker时候开启删除topic的开关,即在server.properties中添加:
delete.topic.enable=true
执行命令:
bin/kafka-topics.sh --delete --zookeeper 虚拟机IP:2181 --topic test
若想真正删除它,可以如下操作:
(1)登录zookeeper客户端的命令:
/usr/local/zookeeper/apache-zookeeper-3.5.6-bin/bin/zkCli.sh
(2)找到topic所在的目录:
ls /brokers/topics
(3)删除topic,执行命令,此时topic被彻底删除:
deleteall /brokers/topics/topic名称
读取offset:
(1)修改配置文件 consumer.properties
consumer.properties exclude.internal.topics=false
(2)读取 offset
0.11.0.0 之前版本:
bin/kafka-console-consumer.sh --topic __consumer_offsets -zookeeper 虚拟机IP:2181 --formatter "kafka.coordinator.GroupMetadataManager\$OffsetsMessageFormatter" --consumer.config config/consumer.properties --from-beginning
0.11.0.0 之后版本(含):
bin/kafka-console-consumer.sh --topic __consumer_offsets -zookeeper 虚拟机IP:2181 --formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageForm atter" --consumer.config config/consumer.properties --frombeginning
消费者组:
(1)修改配置文件 consumer.properties
group.id=组名
注:不同服务器下加入同一个组时每个服务器都需要修改
(2)创建消费者
bin/kafka-console-consumer.sh -bootstrap-server 虚拟机IP:9092 --topic test --consumer.config config/consumer.properties