docker swarm compose 搭建并运行kafka服务
时间: 2024-03-16 15:44:27 浏览: 238
详解使用docker搭建kafka环境
以下是使用Docker Swarm和Docker Compose搭建并运行Kafka服务的简单步骤:
1. 首先,您需要创建一个docker-compose.yml文件,其中包含Kafka服务的配置。以下是一个简单的docker-compose.yml文件,用于启动单个Kafka节点:
```
version: '3.8'
services:
zookeeper:
image: confluentinc/cp-zookeeper:6.2.0
hostname: zookeeper
container_name: zookeeper
ports:
- "2181:2181"
kafka:
image: confluentinc/cp-kafka:6.2.0
hostname: kafka
container_name: kafka
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
```
在上面的配置中,我们使用了Confluent公司提供的Kafka和Zookeeper镜像,并将它们分别命名为zookeeper和kafka。我们还指定了Zookeeper的端口号为2181,Kafka的端口号为9092。
2. 接下来,您需要在Swarm管理节点上初始化Swarm。如果您还没有初始化Swarm,请使用以下命令:
```
docker swarm init
```
3. 然后,您需要将docker-compose.yml文件复制到Swarm管理节点上,并使用以下命令启动Kafka服务:
```
docker stack deploy -c docker-compose.yml kafka
```
这将在您的Swarm集群中启动Kafka服务。
4. 要检查Kafka服务是否正在运行,请使用以下命令:
```
docker service ls
```
这将显示正在运行的Kafka服务。
5. 最后,您可以使用Kafka的客户端工具来测试Kafka服务是否正在工作。例如,您可以使用以下命令向Kafka发送一条消息:
```
docker run --net=kafka_kafka-net --rm confluentinc/cp-kafka:6.2.0 kafka-console-producer --broker-list kafka:9092 --topic test
```
然后,您可以使用以下命令从Kafka中读取消息:
```
docker run --net=kafka_kafka-net --rm confluentinc/cp-kafka:6.2.0 kafka-console-consumer --bootstrap-server kafka:9092 --topic test --from-beginning
```
如果您看到了您发送的消息,则表示Kafka服务已经在Swarm集群中成功启动。
阅读全文