场景

Kafka依赖于ZooKeeper,这里使用Docker进行Zookeeper和Kafka的安装,并实现发送消息和消费消息。

CentOS7中Docker的安装与配置:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119028701

在上面将Docker安装成功的基础上。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

1、搜索有哪些zookeeper的镜像

docker search zookeeper

 

 

选择STARS最多的拉取

docker pull zookeeper

 

 

2、搜索有哪些kafka的镜像

docker search kafka

 

 

同样选择STARS最多的拉取

docker pull bitnami/kafka

 

 

3、启动zookeeper

docker run -d --name zookeeper -p 2181:2181 -t zookeeper

 

 

4、启动kafka

docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=12.0.0.1:2181 -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://12.0.0.1:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t bitnami/kafka

注意环境变量-e配置中

KAFKA_BROKER_ID 每个kafka都会有一个BROKER_ID来区分自己

KAFKA_ZOOKEEPER_CONNECT=12.0.0.1:2181  是配置zookeeper的ip和端口

KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://12.0.0.1:9092  把kafka的地址端口注册给zookeeper

KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092  配置kafaka的监听端口

ALLOW_PLAINTEXT_LISTENER=yes  允许使用PLAINTEXT侦听器

如果不配置这个启动kafka后会失败在日志中会提示:

The KAFKA_CFG_LISTENERS environment variable does not configure a secure listener. Set the environment variable ALLOW_PLAINTEXT_LISTENER=yes to allow the container to be started with a plaintext listener. This is only recommended for development.

The KAFKA_ZOOKEEPER_PROTOCOL environment variable does not configure a secure protocol. Set the environment variable ALLOW_PLAINTEXT_LISTENER=yes to allow the container to be started with a plaintext listener. This is only recommended for development.

5、启动成功之后进入kafka容器内部

查看运行的容器中kafka的容器id

docker ps

然后进入容器内部

docker exec -it 5e2fa88e560e /bin/bash

找到kafka的bin目录

find / -name kafka

进入到bin目录

cd  /opt/bitnami/kafka/bin

 

 

6、创建Topic主题

kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --topic badao --partitions 1 --replication-factor 1

 

 

7、发送消息

kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic badao

发送消息,按回车,之后按行向kafka发送消息 ctrl+C 退出

8、消费消息

此时再复制一个连接,同样进入容器内部的kafka的bin目录下

kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic badao

 

 

 

posted on 2022-04-20 21:37  霸道流氓  阅读(1469)  评论(0编辑  收藏  举报