当前位置: 代码迷 >> 综合 >> docker swarm 搭建kafka集群
  详细解决方案

docker swarm 搭建kafka集群

热度:36   发布时间:2024-02-26 17:00:41.0

docker swarm 搭建kafka集群

  • 创建docker-compose.yml文件
  • 启动集群

创建docker-compose.yml文件

在根目录下创建了kafkacompose.yml文件


version: '3.8'services:zoo1:image: zookeepernetworks:- kafkahostname: zoo1ports: # 端口- 2181:2181environment:ZOO_MY_ID: 1ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181volumes:- "zoo1conf:/conf"- "zoo1data:/data"- "zoo1datalog:/datalog"deploy:mode: replicatedreplicas: 1zoo2:image: zookeepernetworks:- kafkahostname: zoo2ports: # 端口- 2182:2181environment:ZOO_MY_ID: 2ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zoo3:2888:3888;2181volumes:- "zoo2conf:/conf"- "zoo2data:/data"- "zoo2datalog:/datalog"deploy:mode: replicatedreplicas: 1zoo3:image: zookeepernetworks:- kafkahostname: zoo3ports: # 端口- 2183:2181environment:ZOO_MY_ID: 3ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181volumes:- "zoo3conf:/conf"- "zoo3data:/data"- "zoo3datalog:/datalog"deploy:mode: replicatedreplicas: 1 kafka:image: wurstmeister/kafkadepends_on:- zoo1- zoo2- zoo3ports:- target: 9094published: 9094protocol: tcpmode: hostenvironment:# HOSTNAME_COMMAND: "docker info | grep ^Name: | cut -d' ' -f 2"HOSTNAME_COMMAND: "docker info -f '{
   {`{
   {.Swarm.NodeAddr}}`}}'"#BROKER_ID_COMMAND : "docker info -f '{
   {`{
   {.Name}}`}}' | sed 's/kafka//g'"KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXTKAFKA_ADVERTISED_LISTENERS: INSIDE://:9092,OUTSIDE://_{HOSTNAME_COMMAND}:9094KAFKA_LISTENERS: INSIDE://:9092,OUTSIDE://:9094KAFKA_INTER_BROKER_LISTENER_NAME: INSIDEKAFKA_AUTO_CREATE_TOPICS_ENABLE: 'false'KAFKA_LOG_DIRS: /kafka/kafka_logvolumes:- /var/run/docker.sock:/var/run/docker.sock- "/root/kafka:/kafka"networks:- kafkadeploy:mode: globalkafka-manager:image: hlebalbau/kafka-manager:stableports:- "9012:9000"depends_on:- zoo1- zoo2- zoo3environment:ZK_HOSTS: "zoo1:2181,zoo2:2181,zoo3:2181"APPLICATION_SECRET: "random-secret"networks:- kafkavolumes:zoo1data:driver: localdriver_opts:type: "nfs"o: "addr=111.111.3.41,rw"device: ":/root/kafkadata/zoo1/data"zoo1datalog:driver: localdriver_opts:type: "nfs"o: "addr=111.111.3.41,rw"device: ":/root/kafkadata/zoo1/datalog"zoo1conf:driver: localdriver_opts:type: "nfs"o: "addr=111.111.3.41,rw"device: ":/root/kafkadata/zoo1/conf"zoo2data:driver: localdriver_opts:type: "nfs"o: "addr=111.111.3.41,rw"device: ":/root/kafkadata/zoo2/data"zoo2datalog:driver: localdriver_opts:type: "nfs"o: "addr=111.111.3.41,rw"device: ":/root/kafkadata/zoo2/datalog"zoo2conf:driver: localdriver_opts:type: "nfs"o: "addr=111.111.3.41,rw"device: ":/root/kafkadata/zoo2/conf"zoo3data:driver: localdriver_opts:type: "nfs"o: "addr=111.111.3.41,rw"device: ":/root/kafkadata/zoo3/data"zoo3datalog:driver: localdriver_opts:type: "nfs"o: "addr=111.111.3.41,rw"device: ":/root/kafkadata/zoo3/datalog"zoo3conf:driver: localdriver_opts:type: "nfs"o: "addr=111.111.3.41,rw"device: ":/root/kafkadata/zoo3/conf"networks:kafka:driver: overlay

zookeeper集群配置数据、日志使用nfs共享存储,kafka集群本也想使用nfs的,但是使用过程中,总是提示ERROR Disk error while locking directory 错误,故目前使用本地存储。

启动集群

docker stack deploy -c kafkacompose.yml kafka

通过portainer查集群状态
在这里插入图片描述
使用Kafka Tool 2.0访问kafka集群

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
使用kafka-manager访问kafka集群
在这里插入图片描述