docker部署zookeeper和kafka
时间: 2023-09-03 07:15:40 浏览: 53
以下是使用Docker部署Zookeeper和Kafka的步骤:
1. 安装Docker和Docker Compose
2. 创建Docker Compose文件
在本地目录中创建一个名为docker-compose.yml的文件,并添加以下内容:
```
version: "3"
services:
zookeeper:
image: zookeeper
ports:
- "2181:2181"
environment:
ZOO_MY_ID: 1
volumes:
- ./data/zookeeper/data:/data
- ./data/zookeeper/datalog:/datalog
kafka:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CREATE_TOPICS: "test:1:1"
volumes:
- ./data/kafka:/kafka
depends_on:
- zookeeper
```
此文件定义了两个服务:Zookeeper和Kafka。Zookeeper服务使用官方的Zookeeper镜像,Kafka服务使用wurstmeister的Kafka镜像。
3. 启动服务
在终端中,进入含有docker-compose.yml文件的目录中,然后运行以下命令:
```
docker-compose up -d
```
此命令将启动Zookeeper和Kafka服务,并将它们作为Docker容器在后台运行。
4. 验证服务
在浏览器中访问http://localhost:2181/,应该会看到Zookeeper的管理界面。您还可以使用以下命令在Kafka上创建一个测试主题:
```
docker-compose exec kafka \
kafka-topics.sh --create \
--zookeeper zookeeper:2181 \
--replication-factor 1 \
--partitions 1 \
--topic test
```
使用以下命令在Kafka上发布一条消息:
```
docker-compose exec kafka \
bash -c "echo 'hello, world' | kafka-console-producer.sh --broker-list localhost:9092 --topic test && echo 'Produced 1 message.'"
```
最后,使用以下命令在Kafka上消费消息:
```
docker-compose exec kafka \
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
```
如果您能够在终端中看到“hello, world”消息,则表明Kafka已经成功运行。
5. 停止服务
在终端中,进入docker-compose.yml文件所在的目录中,并运行以下命令:
```
docker-compose down
```
此命令将停止并删除Zookeeper和Kafka容器。