Install zookeeper and kafka cluster

Install zookeeper and kafka cluster

build zookeeper

Start directly without talking nonsense, please prepare the image in advance or pull the new version image

# 拉取镜像
docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka
# 拉取完毕后查看
docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
wurstmeister/kafka  latest              c3b059ede60e        4 months ago        507MB
zookeeper           latest              3b83d9104a4c        4 years ago         129MB
# 启动
docker run --name zookeeper -d --restart=always -p 2181:2181 -p 2888:2888 -p 3888:3888 wurstmeister/zookeeper:latest
1b3491a1055a0bb6a2569ff14d1065c7121f2b783c7af863d26c434574ddfc15
# 进入容器
docker exec -it zookeeper bash
pwd
/opt/zookeeper-3.4.13
# 进入conf文件夹,修改zoo.cfg,在最下方添加
vi zoo.cfg
server.1=0.0.0.0:2888:3888
server.2=192.168.119.145:2888:3888
server.3=192.168.119.146:2888:3888
# 另外两台一样添加
# 第二台
server.1=192.168.119.144:2888:3888
server.2=0.0.0.0:2888:3888
server.3=192.168.119.146:2888:3888
# 第三台
server.1=192.168.119.144:2888:3888
server.2=192.168.119.145:2888:3888
server.3=0.0.0.0:2888:3888

Please modify the ip of the node where the machine is located to 0.0.0.0
and my current node is server.1, then modify the ip to 0.0.0.0

After modification, add the value in the myid file to 1

# 第一台
echo 1 > data/myid
# 第二台
echo 2 > data/myid
# 第三台
echo 3 > data/myid

So far we have configured it, just restart the zookeeper container.

docker restart zookeeper

Next verify the cluster

./bin/zkServer.sh status
# 可以看到集群状态
# server.1
Mode: follower
# server.2
Mode: follower
# server.3
Mode: leader

The cluster is built

build kafka

# 运行准备好的镜像
# 1
docker run -d --restart=always --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0  -e KAFKA_ZOOKEEPER_CONNECT=192.168.119.144:2181,192.168.119.145:2181,192.168.119.146:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.119.144:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -d wurstmeister/kafka:latest
# 2
docker run -d --restart=always --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=1  -e KAFKA_ZOOKEEPER_CONNECT=192.168.119.144:2181,192.168.119.145:2181,192.168.119.146:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.119.145:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -d wurstmeister/kafka:latest
# 3
docker run -d --restart=always --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=2  -e KAFKA_ZOOKEEPER_CONNECT=192.168.119.144:2181,192.168.119.145:2181,192.168.119.146:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.119.146:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -d wurstmeister/kafka:latest

# 查看zookeeper
docker exec -it zookeeper bash
./bin/zkCli.sh
ls /brokers/ids
[2, 1, 0]

# 创建topic
# 进入容器
docker exec -it kafka bash
cd /opt/kafka/
./bin/kafka-topics.sh --create --zookeeper 192.168.119.144:2181 --topic test --partitions 1 --replication-factor 1
Created topic test.
# 到另外两台查看新创建的test
# 查看topics
# 192.168.119.145
./bin/kafka-topics.sh --list --zookeeper 192.168.119.145:2181
test
# 192.168.119.145
./bin/kafka-topics.sh --list --zookeeper 192.168.119.146:2181
test
test
# 写(CTRL+D结束写内容)
# 192.168.119.144
./bin/kafka-console-producer.sh --broker-list 192.168.119.144:9092 --topic test
>hello
>这是一个帅比
# 读(CTRL+C结束读内容)
# 192.168.119.146
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.119.146:9092 --topic test --from-beginning
hello
这是一个帅比

insert image description here

Finish!

Guess you like

Origin blog.csdn.net/YourMr/article/details/121040369