Kafka入门系列 | 您所在的位置:网站首页 › kafka不同的消费者组 › Kafka入门系列 |
一. topic的from-beginning参数
启动zookeeper和kafka bin/zkServer.sh start-foreground bin/kafka-server-start.sh config/server.properties创建topic bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic testtopic启动producer和两个consumer 启动producer bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testtopic打开两个命令行窗口启动两个consumer bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testtopic --from-beginning在producer中输入一些字符,可以在consumer中看到已经获取到这些字符。 producer 两个consumer中展示收到的信息打开第三个命令行窗口,并创建一个新的consumer,不过这次的命令和之前的不太一样: bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testtopic可以看到,这次在创建consumer时的参数没有--from-beginning。同时,窗口中并没有输出任何信息。 此时在producer中输入新的信息,查看3个consumer的情况: 在producer中新输入will go to London 前两个consumer中完整显示所有信息 第三个consumer只显示了最新产生的will go to London 以上例子可以印证之前的概念: 多个消费者可以订阅同一个topic。 参数--from-beginning的作用是使consumer从kafka最早的消息开始消费。 二. 消费者组在这之前先关闭之前创建的3个consumer窗口。并使用以下命令分别创建2个新的consumer,这次的命令与之前的也稍有不同。 一个消费者只能属于一个消费者组 消费者组订阅的topic只能被其中的一个消费者消费 不同消费者组中的消费者可以消费同一个topic 实例新开两个命令行窗口,创建2个新的consumer: bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testtopic --group testgroup在producer窗口中输入信息,会发现只有一个consumer窗口中有输出。 关闭刚才创建的2个consumer,使用以下2个命令创建2个新的consumer: bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testtopic --group testgroup1 bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testtopic --group testgroup2订阅testtopic的2个consumer分别属于不同的消费者组testgroup1 和testgroup2,因此2个窗口中都会显示producer产生的消息。 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |