zookeeper和kafka环境前面两篇博客已经介绍了,其实就是简单的虚拟机三台机器。
1、创建topic
kafka-topics.sh --create --zookeeper 192.168.1.101:2181 --replication-factor 3 --partitions 2 --topic test01
此时,可以去zookeeper上看看,是否创建了这个节点:(另外起一个Xshelll)
bin/zkCli.sh
ls /brokers/topics/test01/partitions
可以看到已经有test01这个节点了,并且其分区也是按创建topic时一致,为0和1。
2、启动生产者发送消息:
bin/kafka-console-producer.sh --broker-list 192.168.1.103:9092 --topic test01
这里注意,生产者并不是通过zk管理的,只有消费者信息是注册到zk上的,现在启动消费者消费信息:
首先在101这台机器上,config/consumer.properties中可以看到,消费者组为:
我们启动消费者,并且绑定其配置文件,这样可以指定这个消费者组:
bin/kafka-console-consumer.sh --zookeeper 192.168.1.103:2181 --topic test01 --consumer.config config/consumer.properties
这样消费者就监听成功了,接下来我们发送一条消息:
消费者消费到了消息:
去看zookeeper中,节点发生了什么变化:
get /brokers/topics/test01/partitions/0/state
可以看分区的分区的信息,包括leader等等
看第两个分区,消费了几条数据:
get /consumers/test-consumer-group/offsets/test01/0、
get /consumers/test-consumer-group/offsets/test01/1
5+4刚好是发的九条数据。