Docker搭建Kafka环境
环境说明
- Centos 7.9
- Docker 1.13.1
- Docker API 1.26
- Docker-Compose 1.26.2
使用wurstmeister/kafka-docker
到这个网站https://github.com/wurstmeister/kafka-docker下载整个repo
下载完成上传到虚拟机后解压
单节点启动
修改文件
单机使用的是docker-compose-single-broker.yml
,从名字就可以看出
修改这个文件
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
build: .
ports:
- "9092:9092"
environment:
KAFKA_CREATE_TOPICS: "test:1:1"
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://:9092
KAFKA_LISTENERS: PLAINTEXT://:9092
volumes:
- /var/run/docker.sock:/var/run/docker.sock
保存一下,我们就可以开始了
构建
使用如下命令docker-compose -f docker-compose-single-broker.yml up -d
其中这一步可能会卡出,多试几次就行
出现这个说明完成
使用docker ps
或者 docker-compose ps
查看我们的zookeeper和kafka都启动了
通过docker exec -it 5daa518c1bc3 ./bin/zkCli.sh ls /brokers/ids
我们可以看到一个Kafka节点绑定到了Zookeeper上
集群
使用文件夹中的docker-compose.yml
文件,修改为:
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
build: .
ports:
- "9092"
environment:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://:9092
KAFKA_LISTENERS: PLAINTEXT://:9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
构建
使用命令docker-compose up -d zookeeper
再使用docker-compose scale kafka=3
产生三个Kafka节点
使用docker ps
或者 docker-compose ps
查看
通过docker exec -it 756cfa814e99 ./bin/zkCli.sh ls /brokers/ids
我们可以看到三个Kafka节点绑定到了Zookeeper上
创建Topic
使用命令docker exec b5adf98e7235 kafka-topics.sh --create --topic testtopic --partitions 4 --zookeeper zookeeper:2181 --replication-factor 2
查看Topic
使用命令docker exec b5adf98e7235 kafka-topics.sh --list --zookeeper zookeeper:2181
其他的节点上也有了
生产者发送消息
使用命令 docker exec -it kafka-docker-master_kafka_1 kafka-console-producer.sh --topic testtopic --broker-list kafka-docker-master_kafka_1:9092,kafka-docker-master_kafka_2:9092,kafka-docker-master_kafka_3:9092
消费者消费消息
使用命令 docker exec kafka-docker-master_kafka_2 kafka-console-consumer.sh --topic testtopic --bootstrap-server kafka-docker-master_kafka_1:9092,kafka-docker-master_kafka_2:9092,kafka-docker-master_kafka_3:9092
生产者:
消费者: