第一次在本机虚拟机上使用docker安装了kafka,这里简单的总结一下如何通过docker命令进入到kafka容器中,并且使用命令对kafka容器内部的topic以及消息进行操作,说明一下都是非常基础的命令,主要是topic的增删改查命令、以及简单的生产消息、消费消息的命令。

进入到kafka容器内部

docker exec -it kafka bash

进入到kafka的安装目录,查看到kafka相关的命令

bash-5.1# cd /opt/kafka/bin/
bash-5.1# ls
connect-distributed.sh               kafka-consumer-perf-test.sh          kafka-producer-perf-test.sh          kafka-verifiable-producer.sh
connect-mirror-maker.sh              kafka-delegation-tokens.sh           kafka-reassign-partitions.sh         trogdor.sh
connect-standalone.sh                kafka-delete-records.sh              kafka-replica-verification.sh        windows
kafka-acls.sh                        kafka-dump-log.sh                    kafka-run-class.sh                   zookeeper-security-migration.sh
kafka-broker-api-versions.sh         kafka-features.sh                    kafka-server-start.sh                zookeeper-server-start.sh
kafka-configs.sh                     kafka-leader-election.sh             kafka-server-stop.sh                 zookeeper-server-stop.sh
kafka-console-consumer.sh            kafka-log-dirs.sh                    kafka-streams-application-reset.sh   zookeeper-shell.sh
kafka-console-producer.sh            kafka-mirror-maker.sh                kafka-topics.sh
kafka-consumer-groups.sh             kafka-preferred-replica-election.sh  kafka-verifiable-consumer.sh

topic操作

创建topic

# 执行topic脚本 添加topic:example 一个分区 一个副本
kafka-topics.sh --create --topic example --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1

执行效果如下所示:

bash-5.1# kafka-topics.sh --create --topic example --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1
Created topic example.

查询topic列表

kafka-topics.sh --zookeeper zookeeper:2181 --list

执行效果如下所示:

bash-5.1# kafka-topics.sh --zookeeper zookeeper:2181 --list
example
example1

删除topic

kafka-topics.sh --zookeeper zookeeper:2181 --delete --topic example

​ 执行效果如下所示:

bash-5.1# kafka-topics.sh --zookeeper zookeeper:2181 --delete --topic example1
Topic example1 is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.

查询topic详情

kafka-topics.sh --zookeeper zookeeper:2181 --describe --topic example

​ 执行的效果如下所示:

bash-5.1# kafka-topics.sh --zookeeper zookeeper:2181 --describe --topic example
Topic: example	PartitionCount: 1	ReplicationFactor: 1	Configs: 
	Topic: example	Partition: 0	Leader: 1001	Replicas: 1001	Isr: 1001

​ 这里我们可以看到分区数、副本数、leader等topic下的信息

生产者发送消息

下面我们执行命令发送数据到指定的kafka下的topic中,命令的格式如下:

kafka-console-producer.sh --broker-list  localhost:9092 --topic example

​ 执行的效果:

bash-5.1# kafka-console-producer.sh --broker-list  localhost:9092 --topic example
>
>hello
>hello ^H^H^H^[[3~^[[D^[[D^[[D^[[C
>nih^H你好
>

​ 我们使用kafka可视化工具验证一下发送的数据是否成功发送了,发现是可以正常发送消息的

img

消费者消费消息

下面我们启动消费者进行消费消息,执行命令的格式如下所示:

kafka-console-consumer.sh --bootstrap-server  localhost:9092 --topic example

​ 执行的效果如下所示:

bash-5.1# kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic example
hell
hei

生产者命令和消费者命令的注意事项

启动完消费者和生产者,这里面的消费者消费的前提是消费者命令要一直开启,否则的话,生产者发送的数据,消费者就不会消费到,这里只能消费到实时传输的数据!

Logo

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

更多推荐