基于命令行方式使用Kafka
Kafka基于命令行方式的使用
命令行操作是使用Kafka最基本的方式,也便于初学者入门使用。要想使生产者和消费者互相通信,就必须先创建一个“公共频道”,它就是主题,在Kafka解压包的bin目录下,有一个kafka-topics.sh文件,通过该文件就可以操作与主题组件相关的功能,由于前面配
置了环境变量,所以可以在任何目录 下访问bin目录下的所有文件。
(1)下面首先创建一个名为itcasttopic的主题,命令如下:
$kafka-topics.sh--create \
--topic whhtopic \
--partitions 3 \
--replication-factor 2 \
--zookeeper master:2181,slave1:2181,slave2:2181
上述命令创建了一个名为whhtopic的主题,该主题的分区数为3,副本数为2。关于上述命令参数的相关说明具体如下。
(1)--create:创建一个主题。(2)--topic:定义主题名称。(3)--partitions:定义分区数。
(4)--replication-factor;定义副本数。
(5)--zookeeper:指定Zookeeper服务IP地址与端口号。
主题创建成功后,就可以创建生产者生产消息,用来模拟生产环境中源源不断的消息, bin 目录中的kafka-console-producer.sh文件,可以使用生产者组件相关的功能,如向主题中发送消息数据的功能,命令如下所示。
$ kafka-console-producer.sh \
--broker-list master:9092,slave1:9092,slave2:9092 \
--topic whhtopic
(2)上述命令创建了一个生产者,指定主题名为itcasttopic,设置Kafka集群IP地址与端口号,执行完如下图所示:
从上图可以看出,执行命令后并无信息输出,并且光标一直保持在等待输入的状态,此时切换到slave1终端,创建消费者消息,bin目录kafka-console-consumer.sh文件,可以使用消费者组件相关的功能,命令如下:
$ kafka-console-consumer.sh \
-- from-beginning --topic whhtopic \
--bootstrap-server master:9092,slave1:9092,slave2:9092
(3)上述命令执行后,依然没有任何消息输出,这是因为master节点的生产者没有生产消息,此时返回master终端,输入任意数据,如下图所示:
(4) 在master终端输入hello kafka 的消息内容,这些单词就是数据源,放回slave1消费者终端查看信息,如下图所示:
此时得到消费者终端接收到了master生产者终端的消息。
(5)Kafka常用的还可以使用--list参数查看所有的主题,具体命令如下:
$ kafka-topics.sh --list \
--zookeeper master:2181,slave1:2181,slave2:2181
(6)删除当前主题时,只需要执行以下命令:
$ kafka-topics.sh--delete \
--zookeeper master:2181,slave1:2181,slave2:2181 \
--topic itcasttopic
好了,基于命令行方式使用Kafka就讲到这啦。
更多推荐
所有评论(0)