命令行操作是使用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就讲到这啦。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐