运维利器Docker部署 Kafka 2.12-2.2.1伪集群

运维利器Docker部署 Kafka 2.12-2.2.1伪集群

    • 前言
    • 环境概述
    • 部署Zookeeper集群
    • 关闭防火墙
    • 启动Docker
    • 创建Docker网络
    • 查看Docker网络
    • vim编写docker-compose.yml
    • 启动 Kafka 集群
    • 查看日志
    • 使用客户端连接
    • Docker 容器内的服务连接

前言

1、本篇文章省略 docker 和 docker-compose 安装配置过程,如果大家还对 docker 不了解的自行百度!

环境概述

  • CentOS 7.6
  • Docker 18.09.6
  • Docker-compose 1.23.2

部署Zookeeper集群

运维利器Docker部署Zookeeper3.5.5伪集群

关闭防火墙

 systemctl stop firewalld.service

启动Docker

 systemctl start docker

创建Docker网络

docker network create yoootoo-mall-service

查看Docker网络

docker network ls

vim编写docker-compose.yml

注意事项
1:自定义网络模式:yoootoo-mall-service
2:docker-compose 版本号:3.1
3:kafka 镜像:2.12-2.2.1
5:kafka 集群配置:一共启动三台 kafka,分别映射向宿主机的 9092,9093,9094

version: "3.1"
services:

  kafka1:
    image: wurstmeister/kafka:2.12-2.2.1
    network_mode: yoootoo-mall-service
    container_name: kafka1
    hostname: kafka1
    restart: always
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - "9092:9092"


  kafka2:
    image: wurstmeister/kafka:2.12-2.2.1
    network_mode: yoootoo-mall-service
    container_name: kafka2
    hostname: kafka2
    restart: always
    depends_on:
      - kafka1
    environment:
      KAFKA_BROKER_ID: 2
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9092
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - "9093:9092"


  kafka3:
    image: wurstmeister/kafka:2.12-2.2.1
    network_mode: yoootoo-mall-service
    container_name: kafka3
    hostname: kafka3
    restart: always
    environment:
      KAFKA_BROKER_ID: 3
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka3:9092
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - kafka2
    ports:
      - "9094:9092"



启动 Kafka 集群

docker-compose up -d

查看日志

docker logs kafka1

使用客户端连接

宿主机IP: 192.168.14.137
SpringBoot连接:192.168.14.137:9092,192.168.14.137:9093,192.168.14.137:9094


注意事项:
1:、docker 容器外部服务连接 容器内 Kafka集群需要更改参数:KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092,则将 kafka1 hostname 更改为宿主机实际IP即可,例如当前宿主机IP为:192.168.14.137,则参数为KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.14.137:9092,需要强调一点的是,端口为宿主机映射端口,切勿使用 docker 容器内端口。

Docker 容器内的服务连接

连接地址:kafka1:9092,kafka2:9092,kafka3:9092


注意事项:
1、docker 使用 hostname 通讯,则以上定义的:kafka1,kafka2,kafka3
2、docker 容器内的服务网络模式必须一致,则以上创建的:yoootoo-mall-service
3、docker 容器内服务连接的端口为 docker 内端口,切勿使用宿主机映射端口。

你可能感兴趣的:(Kafka,docker,kafka)