Sign inSign up

leixuewen/kafka

By leixuewen

•Updated about 2 years ago

kafka 3.8.0 支持kraft集群和zookeeper集群

Image
0

889

leixuewen/kafka repository overview

⁠环境变量

  • KAFKA_HOME

    • single_mode 单机模式(同时启动一个zookeeper和kafka)

    • cluster_mode 集群模式(需要额外部署zookeeper服务)

    • kraft_server_mode kraft server 模式

    • kraft_broker_mode kraft broker 模式

    • kraft_controller_mode kraft controller 模式

    • * /kafka/bin/"$KAFKA_RUN_MODE".sh $RUN_PARAMETER
      
  • KAFKA_RUN_MODE

    • kafka工作目录
  • RUN_PARAMETER

    • 运行参数,在启动脚本后添加自定义参数,例如: RUN_PARAMETER=--override advertised.listeners=PLAINTEXT://host.docker.internal:9092 就可以在启动时设置override参数用于覆盖默认配置文件的参数
  • RANDOM_UUID

    • kraft模式需要用到的全局唯一ID,使用./bin/kafka-storage.sh random-uuid生成

⁠单机zookeeper模式

docker run --name kafka -p 9092:9092 -e "RUN_PARAMETER=--override advertised.listeners=PLAINTEXT://host.docker.internal:9092" leixuewen/kafka

⁠单机kraft模式

docker run --name kraft_server -p 9092:9092 -p 9093:9093 -e "RANDOM_UUID=TU40YGvItXASz9nHKwrL70" -e "KAFKA_RUN_MODE=kraft_server_mode" -e "RUN_PARAMETER=--override advertised.listeners=PLAINTEXT://host.docker.internal:9092" leixuewen/kafka

通过配置server.properties文件并设置文件映射,文件所在目录:/kafka/config/server.properties

⁠集群zookee模式 (docker-compose.yml)

version: "3"
services:
  zookeeper:
    image: zookeeper:3.7.0
    ports:
      - "2181:2181"
  kafka1:
    image: leixuewen/kafka
    ports:
      - "19092:19092"
    environment:
      - "KAFKA_RUN_MODE=cluster_mode"
      - "RUN_PARAMETER=--override broker.id=1 --override advertised.listeners=PLAINTEXT://host.docker.internal:19092 --override port=19092 --override zookeeper.connect=zookeeper:2181"
  kafka2:
    image: leixuewen/kafka
    ports:
      - "29092:29092"
    environment:
      - "KAFKA_RUN_MODE=cluster_mode"
      - "RUN_PARAMETER=--override broker.id=2 --override advertised.listeners=PLAINTEXT://host.docker.internal:29092 --override port=29092 --override zookeeper.connect=zookeeper:2181"
  kafka3:
    image: leixuewen/kafka
    ports:
      - "39092:39092"
    environment:
      - "KAFKA_RUN_MODE=cluster_mode"
      - "RUN_PARAMETER=--override broker.id=3 --override advertised.listeners=PLAINTEXT://host.docker.internal:39092 --override port=39092 --override zookeeper.connect=zookeeper:2181"

⁠集群kraft模式 (docker-compose.yml)

version: "3"
services:
  kafka-kraft1:
    image: leixuewen/kafka
    environment:
      - "KAFKA_RUN_MODE=kraft_server_mode"
      - "RANDOM_UUID=TU40YGvItXASz9nHKwrL71"
    volumes:
      - "D:/project/docker-deploy/kafka-cluster/kraft-node-1.properties:/kafka/config/kraft/server.properties"
  kafka-kraft2:
    image: leixuewen/kafka
    environment:
      - "KAFKA_RUN_MODE=kraft_server_mode"
      - "RANDOM_UUID=TU40YGvItXASz9nHKwrL72"
    volumes:
      - "D:/project/docker-deploy/kafka-cluster/kraft-node-2.properties:/kafka/config/kraft/server.properties"
  kafka-kraft3:
    image: leixuewen/kafka
    environment:
      - "KAFKA_RUN_MODE=kraft_server_mode"
      - "RANDOM_UUID=TU40YGvItXASz9nHKwrL73"
    volumes:
      - "D:/project/docker-deploy/kafka-cluster/kraft-node-3.properties:/kafka/config/kraft/server.properties"

配置文件kraft-node-1.properties需要修改部分,其它根据需求更改

# 与此实例的角色关联的节点 ID
node.id=1
# 控制器仲裁的连接字符串
controller.quorum.voters=1@kafka-kraft1:9093,2@kafka-kraft2:9093,3@kafka-kraft3:9093
# 套接字服务器侦听的地址
listeners=PLAINTEXT://kafka-kraft1:9092,CONTROLLER://kafka-kraft1:9093

配置文件kraft-node-2.properties需要修改部分,其它根据需求更改

# 与此实例的角色关联的节点 ID
node.id=3
# 控制器仲裁的连接字符串
controller.quorum.voters=1@kafka-kraft1:9093,2@kafka-kraft2:9093,3@kafka-kraft3:9093
# 套接字服务器侦听的地址
listeners=PLAINTEXT://kafka-kraft2:9092,CONTROLLER://kafka-kraft2:9093

配置文件kraft-node-3.properties需要修改部分,其它根据需求更改

# 与此实例的角色关联的节点 ID
node.id=3
# 控制器仲裁的连接字符串
controller.quorum.voters=1@kafka-kraft1:9093,2@kafka-kraft2:9093,3@kafka-kraft3:9093
# 套接字服务器侦听的地址
listeners=PLAINTEXT://kafka-kraft3:9092,CONTROLLER://kafka-kraft3:9093

Tag summary

Content type

Image

Digest

sha256:ff9089bd3…

Size

181 MB

Last updated

about 2 years ago

docker pull leixuewen/kafka