以下是一个简单的示例docker-compose.yml文件,用于部署Kafka和Kafka-Manager集群。在这个例子中,我们使用了三个Kafka节点和一个Kafka-Manager节点。

version: '3'

services:
  kafka-zookeeper:
    image: wurstmeister/zookeeper
    restart: always
    ports:
      - "2181:2181"
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=kafka-zookeeper:2888:3888
    networks:
      - kafka-network

  kafka-node-1:
    image: wurstmeister/kafka
    restart: always
    ports:
      - "9092:9092"
    environment:
      KAFKA_ZOOKEEPER_CONNECT: kafka-zookeeper:2181
      KAFKA_ADVERTISED_HOST_NAME: kafka-node-1
      KAFKA_BROKER_ID: 1
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
    depends_on:
      - kafka-zookeeper
    networks:
      - kafka-network

  kafka-node-2:
    image: wurstmeister/kafka
    restart: always
    ports:
      - "9093:9092"
    environment:
      KAFKA_ZOOKEEPER_CONNECT: kafka-zookeeper:2181
      KAFKA_ADVERTISED_HOST_NAME: kafka-node-2
      KAFKA_BROKER_ID: 2
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
    depends_on:
      - kafka-zookeeper
    networks:
      - kafka-network

  kafka-node-3:
    image: wurstmeister/kafka
    restart: always
    ports:
      - "9094:9092"
    environment:
      KAFKA_ZOOKEEPER_CONNECT: kafka-zookeeper:2181
      KAFKA_ADVERTISED_HOST_NAME: kafka-node-3
      KAFKA_BROKER_ID: 3
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
    depends_on:
      - kafka-zookeeper
    networks:
      - kafka-network

  kafka-manager:
    image: kafkamanager/kafka-manager
    restart: always
    ports:
      - "9000:9000"
    environment:
      ZK_HOSTS: kafka-zookeeper:2181
      APPLICATION_SECRET: letmein
    networks:
      - kafka-network

networks:
  kafka-network:

在这个例子中,我们使用了wurstmeister/kafka和kafkamanager/kafka-manager这两个Docker镜像。在Kafka节点中,我们设置了KAFKA_ZOOKEEPER_CONNECT环境变量来指定Zookeeper的连接地址。我们还设置了KAFKA_ADVERTISED_HOST_NAME环境变量来指定该节点的主机名。KAFKA_BROKER_ID环境变量用于指定每个Kafka节点的唯一标识符。KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR环境变量用于指定偏移量主题的副本因子。

在Kafka-Manager节点中,我们设置了ZK_HOSTS环境变量来指定Zookeeper的连接地址。我们还设置了APPLICATION_SECRET环境变量来指定Kafka-Manager的应用程序密钥。

在这个例子中,我们使用了一个名为kafka-network的Docker网络。您可以根据需要使用不同的网络名称。

要启动此Docker Compose文件,请使用以下命令:

docker-compose up -d

这将启动Kafka和Kafka-Manager集群,并将它们连接到一个Docker网络中。您可以使用以下命令来检查容器是否正在运行:

docker ps

您还可以使用以下命令来查看Kafka-Manager的Web界面:

http://localhost:9000

在这个例子中,我们将Kafka节点的端口映射到主机的端口上。如果您正在运行Docker Compose文件的主机不是localhost,则需要将localhost替换为Docker主机的IP地址

docker-compose 部署kafkakafka-manager集群

原文地址: https://www.cveoy.top/t/topic/cp3E 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录