kafka搭建后zookeeper节点上的变化

具体搭建步骤参见官网文档:http://kafka.apache.org/quickstart

启动zookeeper


nohup bin/zookeeper-server-start.sh config/zookeeper.properties  > zookeeper.log  2>&1 &

在这里插入图片描述
说明:启动zookeeper后,只有/zookeeper/quota节点

启动kafka


nohup bin/kafka-server-start.sh config/server.properties  > kafka.log  2>&1 &

在这里插入图片描述
说明:kafka启动后立即在zk上创建了大量节点了

创建topic


bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test

在这里插入图片描述
说明:创建topic后,节点 /brokers/topics/ 与 config/topics 均有变化

启动生产者与消费者


bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

在这里插入图片描述
在这里插入图片描述
说明:可以看到,在启动了生产者与消费者之后,又多了2个节点 /brokers/topics/__consumer_offsets 与 /config/topicsk/__consumer_offsets,但是这个时候我们并没有创建topic哦,我们也可以进一步使用命令确认一把:


# bin/kafka-topics.sh --list --bootstrap-server localhost:9092
__consumer_offsets
test

创建含有3个副本的topic


> bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 3 --partitions 1 --topic my-replicated-topic
Error while executing topic command : org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 3 larger than available brokers: 1.
[2019-05-17 06:47:41,785] ERROR java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 3 larger than available brokers: 1.
	at org.apache.kafka.common.internals.KafkaFutureImpl.wrapAndThrow(KafkaFutureImpl.java:45)
	at org.apache.kafka.common.internals.KafkaFutureImpl.access$000(KafkaFutureImpl.java:32)
	at org.apache.kafka.common.internals.KafkaFutureImpl$SingleWaiter.await(KafkaFutureImpl.java:89)
	at org.apache.kafka.common.internals.KafkaFutureImpl.get(KafkaFutureImpl.java:260)
	at kafka.admin.TopicCommand$AdminClientTopicService.createTopic(TopicCommand.scala:175)
	at kafka.admin.TopicCommand$TopicService.createTopic(TopicCommand.scala:134)
	at kafka.admin.TopicCommand$TopicService.createTopic$(TopicCommand.scala:129)
	at kafka.admin.TopicCommand$AdminClientTopicService.createTopic(TopicCommand.scala:157)
	at kafka.admin.TopicCommand$.main(TopicCommand.scala:60)
	at kafka.admin.TopicCommand.main(TopicCommand.scala)
Caused by: org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 3 larger than available brokers: 1.
 (kafka.admin.TopicCommand$)

说明:发现报错了,这个时候我们的kafaka只有1个broker,所以是无法创建大于1个副本的topic的,所以我们还是老老实实按照官网步骤【Step 6: Setting up a multi-broker cluster】搞一下:
http://kafka.apache.org/quickstart#quickstart_multibroker
在这里插入图片描述
说明:执行后发现/brokers/ids/下面增加了2个节点/brokers/ids/1 与 /brokers/ids/2 了 ,这个时候再来创建含有3个副本的topic就成功了


# bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 3 --partitions 1 --topic my-replicated-topic

在这里插入图片描述

现在我们有3个brokers是否可以创建含有2个副本的topic呢,实践是可以的


# bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 2 --partitions 1 --topic my-replicated-topic2

在这里插入图片描述
说明 :根据节点/brokers/topics/my-replicated-topic2的data内容可以看到副本存储到id为0,2的broker里了。


更多精彩内容