赞
踩
topic是kafka的生产者和消费者最小交互的单位,我们先从topic入手,创建第一个topic.
进去kafka的bin目录我们发现有个kafka-topics.sh脚本
kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic mytest
kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic mytest
参数解释
--bootstrap-server node1:9092,node2:9092,node3:9092....
或
--zookeeper node1:2181,node2:2181,node3:2181...
--partitions
--replication-factor
所以执行上面命令将会创建一个名为mytest的topic,该topic下面有1个分区,并且该分区只有1个副本。
PS:除了手动创建主题外,还可以将代理配置为在发布不存在的主题时自动创建主题
kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic mytest
image.png
Partition:0 表示该分区的id为0
leader: 9 表示分区的首领副本所在的broker(本例子中broker.id配置为9,所以这里显示9,具体在config/server.properties配置。这里只有一个分区,所以首领分区也就是自己)
Replicas: 9 表示分区的跟随副本所在的broker
Isr: 9 表示分区的同步副本所在的broker(同步副本可以认为跟首领副本准实时同步的副本,可以配置判断条件,后面会讲,首领副本挂掉后,服务器会从同步副本中选举新的首领)
kafka-topics.sh --list--bootstrap-server localhost:9092
image.png
kafka-console-producer.sh --broker-list localhost:9092 --topic mytest
发送三个消息,分别是hello, world和!
image.png
- kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mytest --from-beginning
-
注意: --from-beginning 表示从最开始的offset处开始消费。如果不写表示从最新的offset处消费,那么先发送了消息再开启消费者是收不到已发送的信息的
image.png
接收成功。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。