docker搭建真机的kafka集群

2021-08-05 11:09:30 浏览数 (1)

使用docker搭建真机kafka集群

1、搭建zookeeper

首先搭建zookeeper、可以使用docker搭建zookeeper集群,如果是自己测试,可以在一台机器上使用docker搭建一个伪集群

这里贴一份单机上搭建zookeeper伪集群的docker-compose文档

docker-compose.yaml

代码语言:javascript复制
version: '3.1'

services:
  zoo1:
    image: zookeeper
    restart: always
    hostname: zoo1
    ports:
      - 42181:2181
    volumes:
      - ./zoo1/conf:/conf
      - ./zoo1/data:/data
      - ./zoo1/datalog:/datalog
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zoo2:
    image: zookeeper
    restart: always
    hostname: zoo2
    ports:
      - 42182:2181
    volumes:
      - ./zoo2/conf:/conf
      - ./zoo2/data:/data
      - ./zoo2/datalog:/datalog
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zoo3:
    image: zookeeper
    restart: always
    hostname: zoo3
    ports:
      - 42183:2181
    volumes:
      - ./zoo3/conf:/conf
      - ./zoo3/data:/data
      - ./zoo3/datalog:/datalog
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181

如果不用docker搭建真机的zookeeper集群,可以参考这篇文章:

2、搭建kafka真机集群

选择三台真机(如果是自己测试玩的,也可以用虚拟机了)

比如我选择真机是下面三台

192.168.0.1

192.168.0.2

192.168.0.3

那么需要分别在三台主机上创建下面三个文件

docker-compose.yaml

代码语言:javascript复制
version: '3'

services:
  kafka:
    container_name: kafka_ai_1
    image: wurstmeister/kafka
    restart: always
    network_mode: "host"
    volumes:
      - ./kafka/logs:/kafka
    environment:
      - CLUSTER_NAME=KAFKA
      - KAFKA_ADVERTISED_HOST_NAME=<host_ip>
      - KAFKA_ADVERTISED_PORT=9092
      - KAFKA_ZOOKEEPER_CONNECT=<zk1>:42181,<zk2>:42182,<zk3>:42183
      - KAFKA_HOST_NAME=<host_ip>
      - KAFKA_BROKER_ID=1
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://<host_ip>:9092
      - KAFKA_LISTENERS=PLAINTEXT://<host_ip>:9092
      - KAFKA_DELETE_TOPIC_ENABLE=true

上面的docker-compose不能直接使用,需要给<host_ip>具体的值,以及zookeeper集群的地址,如下:

<host_ip>:当前主机的ip

:zookeeper集群的第一个节点,端口也是一样

:zookeeper集群的第二个节点,端口也是一样

zookeeper集群的第三个节点,端口也是一样

container_name:你可以定义自己容易区分的名字

端口9092端口没有被占用的话,可以直接使用

另外如果有防火墙的,需要关闭防火墙,或者开启9092端口

3、测试

我这边测试使用的是kafka tool工具,下载地址:https://www.kafkatool.com/download.html

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/111206.html原文链接:https://javaforall.cn

0 人点赞