docker搭建真機的kafka集羣

使用docker搭建真機kafka集羣

1、搭建zookeeper

首先搭建zookeeper、可以使用docker搭建zookeeper集羣,如果是自己測試,可以在一臺機器上使用docker搭建一個僞集羣

這裏貼一份單機上搭建zookeeper僞集羣的docker-compose文檔

docker-compose.yaml

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

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
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章