启动zookeeper和Kafka之后,进入kafka目录(安装/启动kafka参考前面一章:https://www.cnblogs.com/cici20166/p/9425613.html)
1.创建Topic
1)运行命令: ./bin/kafka-topics.sh --create --zookeeper zk1:2181 --replication-factor 2 --partitions 3 --topic hello
replication-factor:副本数,包含主节点,不能大于机器数
partitions:分区数,可以大于机器数
同一台机器不能包含两个相同的partition:hello-1/hello-1
但是可以有两个不同的分区:hello-2/hello-3
图示为创建成功:
2.查看Topic
1)运行命令查看所有的topic: ./bin/kafka-topics.sh --list --zookeeper zk1:2181
结果如下图,表示共有test和test1两个topic:
3.用Kafka的console-producer在topic hello 生产消息
新建终端窗口,到kafka目录,运行命令:./bin/kafka-console-producer.sh --broker-list zk1:9092 --topic hello
然后输入想要产生的消息内容(如 hello world),回车:
4.用Kafka的console-consumer 消费topic hello的消息
新建终端窗口,到kafka目录,
运行命令:./bin/kafka-console-consumer.sh --bootstrap-server zk1:9092 --topic hello --from-beginning
(9092是kafka单机启动的端口;--bootstrap-server 新旧kafka版本不一样,这个是新版本的命令)
ps. 1)若producer 和 consumer 两个窗口同时打开,在producer输入信息,consumer会立即消费信息并打印在终端
{{uploading-image-892112.png(uploading...)}}
{{uploading-image-443812.png(uploading...)}}
2)新开一个终端,去消费同一个topic,刚刚已经消费过的消息还会被新终端继续消费。也就是说,消息被消费过后不会立即被删除。(不同的groupid消费重新计算offset)
5.kafka-manager可以看到上述操作记录产生的影响
新增了一个topic
三个kafka-broker
具体topic详情