记快乐符号:
利用docker搭建zookeeper 以及 kafa
官网: https://kafka.apache.org/documentation/
安装zookeeper
docker run -it -p2888:2888 -p2181:2181 --name=zookeeper zookeeper
安装centos的Docker镜像
docker run -it -p9092:9092 --name=kafka centos:7
以下操作保持在 我们启动的kafka容器中操作
我们更新一下软件列表
dnf update
更完成后,我们再去下载vim
dnf install vim
由于kafka需要java环境,我们需要安装openjdk
dnf install java
java -version
通过curl下载kafka
https://mirrors.bfsu.edu.cn/apache/kafka/
curl -O -L https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.6.0/kafka_2.12-2.6.0.tgz
tar -zvxf kafka_2.12-2.6.0.tgz
使用contro+p+q来退出docker 内部容器控制台,返回值宿主机控制台
我们要查看zookeeper的ip 那我们使用
docker inspect --format='{{.NetworkSettings.IPAddress}} CONTAINER ID
docker inspect --format='{{.NetworkSettings.IPAddress}} 995242c5d83c
qinghai@localhost software % docker inspect --format='{{.NetworkSettings.IPAddress}}' zookeeper
172.17.0.2
那么我获取到的zookeeper的ip地址为:172.17.0.2
我们重新回到kafka容器内部
docker exec -it kafka /bin/bash
进入kafka的安装目录后,我们进入bin目录中
进入kafka的config的路径中
编辑server.properties文件
将zookeeper.connect=localhost:2181更改为zookeeper.connect=172.17.0.2:2181
启动kafka
./kafka-server-start.sh ../config/server.properties
上面的部分省略....
[2020-09-09 13:59:16,767] INFO [KafkaServer id=0] started (kafka.server.KafkaServer)
此时,我们使用contro+p+q重新进入kafka容器中
docker exec -it kafka /bin/bash
进入kafka的安装路径,在进入bin执行
[root@0db103c94a5c bin]#
./kafka-topics.sh --create --zookeeper 172.17.0.2:2181 --replication-factor 1 --partitions 1 --topic nanjolono
得到了结果,我们创建了一个名字为nanjolono的topic
Created topic nanjolono.
查看创建的topic
./kafka-topics.sh --list --zookeeper 172.17.0.2:2181
发送一些消息
[root@0db103c94a5c bin]#
./kafka-console-producer.sh --broker-list localhost:9092 --topic nanjolono
>
我们再次创建一个shell窗口
进入kafka容器中
docker exec -it kafka /bin/bash
进入kafka的安装目录,进入bin目录
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic nanjolono --from-beginning
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my-group
https://kafka.apache.org/documentation/
此时,我们在生产者控制台输入文字,消费者控制台能够成功接受到,就是成功啦!