Docker swarm 配置kafka 集群高可用

838 阅读1分钟

Docker swarm 配置kafka 集群高可用

一创建服务器挂在目录

mkdir -pv /data/docker/composes/prod/middleware/kafka_cluster/broker1/{conf,data,logs};
mkdir -pv /data/docker/composes/prod/middleware/kafka_cluster/broker2/{conf,data,logs};
mkdir -pv /data/docker/composes/prod/middleware/kafka_cluster/broker3/{conf,data,logs};

二kafka.yml

version: '3'
services:
      
  #kafka服务
  kafka_broker1:
    image: 10.11.32.23:5000/kafka:v2.13-2.6.0
    ports:
      - 19092:9092
    networks:
      - GIE-ECP-overlay-network
    environment:
      - TZ=CST-8
      - KAFKA_ADVERTISED_HOST_NAME=kafka_broker1
      - HOST_IP=kafka_broker1
      - KAFKA_ADVERTISED_PORT=9092
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
      - KAFKA_BROKER_ID=0
    volumes:
      - /data/docker/composes/prod/middleware/kafka_cluster/broker1/conf:/opt/kafka/config
      - /data/docker/composes/prod/middleware/kafka_cluster/broker1/logs:/opt/kafka/logs
      - /data/docker/composes/prod/middleware/kafka_cluster/broker1/data:/opt/kafka/data
    deploy:
      replicas: 1
      placement:
        constraints:
          - node.hostname == GIE-EC-Node03
      resources:
        limits:
#          cpus: '1'
          memory: 10GB
        reservations:
#          cpus: '0.2'
          memory: 512M

  kafka_broker2:
    image: 10.11.32.23:5000/kafka:v2.13-2.6.0
    ports:
      - 29092:9092
    networks:
      - GIE-ECP-overlay-network
    environment:
      - TZ=CST-8
      - KAFKA_ADVERTISED_HOST_NAME=kafka_broker2
      - HOST_IP=kafka_broker2
      - KAFKA_ADVERTISED_PORT=9092
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
      - KAFKA_BROKER_ID=1
    volumes:
      - /data/docker/composes/prod/middleware/kafka_cluster/broker2/conf:/opt/kafka/config
      - /data/docker/composes/prod/middleware/kafka_cluster/broker2/logs:/opt/kafka/logs
      - /data/docker/composes/prod/middleware/kafka_cluster/broker2/data:/opt/kafka/data     
    deploy:
      replicas: 1
      placement:
        constraints:
          - node.hostname == GIE-EC-Node04
      resources:
        limits:
#          cpus: '1'
          memory: 10GB
        reservations:
#          cpus: '0.2'
          memory: 512M

  kafka_broker3:
    image: 10.11.32.23:5000/kafka:v2.13-2.6.0
    ports:
      - 39092:9092
    networks:
      - GIE-ECP-overlay-network
    environment:
      - TZ=CST-8
      - KAFKA_ADVERTISED_HOST_NAME=kafka_broker3
      - HOST_IP=kafka_broker3
      - KAFKA_ADVERTISED_PORT=9092
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
      - KAFKA_BROKER_ID=2
    volumes:
      - /data/docker/composes/prod/middleware/kafka_cluster/broker3/conf:/opt/kafka/config
      - /data/docker/composes/prod/middleware/kafka_cluster/broker3/logs:/opt/kafka/logs
      - /data/docker/composes/prod/middleware/kafka_cluster/broker3/data:/opt/kafka/data
    deploy:
      replicas: 1
      placement:
        constraints:
          - node.hostname == GIE-EC-Node05
      resources:
        limits:
#          cpus: '1'
          memory: 10GB
        reservations:
#          cpus: '0.2'
          memory: 512M
      
  kafka_manager:
    image: 10.11.32.23:5000/kafka-manager:3.0.0.4
    ports:
      - 9012:9000
    depends_on:
      - zookeeper1
      - zookeeper2
      - zookeeper3
    environment:
      ZK_HOSTS: "zookeeper1:2181,zookeeper2:2181,zookeeper3:2181"
      APPLICATION_SECRET: "random-secret"
    networks:
      - GIE-ECP-overlay-network


networks:
  GIE-ECP-overlay-network:
    external: true

三配置文件每个服务器中的 server.properties 配置

参考路径 /data/docker/composes/prod/middleware/kafka_cluster/broker1/conf/server.properties

advertised.port=9092
advertised.host.name=kafka_broker1
port=9092
broker.id=0
zookeeper.connect=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
log.dirs=/kafka/kafka-logs-21b59d04b36a
advertised.port=9092
advertised.host.name=kafka_broker2
port=9092
broker.id=0
zookeeper.connect=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
log.dirs=/kafka/kafka-logs-21b59d04b36a
advertised.port=9092
advertised.host.name=kafka_broker3
port=9092
broker.id=0
zookeeper.connect=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
log.dirs=/kafka/kafka-logs-21b59d04b36a

附录

blog.csdn.net/jucks2611/a… 客户测试端连接

www.freesion.com/article/985… swarm kafka 集群