文章 / 数据与中间件 / kafka

kafka

2025年10月11日8 min2166 words
kafka
图 1-1 cover.webp

新版卡夫卡不需要zookeeper

version: "3"
services:
  kafka:
    image: bitnami/kafka:latest
    ports:
      - 9092:9092
    environment:
      - KAFKA_CFG_NODE_ID=0
      - KAFKA_CFG_PROCESS_ROLES=controller,broker
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER

kafka关键配置如下

process.roles=broker,controller
node.id=0
controller.quorum.bootstrap.servers=localhost:9093
listeners=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
advertised.listeners=PLAINTEXT://localhost:9092,CONTROLLER://localhost:9093
controller.listener.names=CONTROLLER

其中advertised.listeners对应的环境变量是KAFKA_CFG_ADVERTISED_LISTENERS 这个是kafuka对外的地址

kafka-ui

kafka没有自己的可视化界面,常见的ui有kafka-ui和efak 本文只介绍kafka-ui kafka-ui

配置如下:

services:
  kafka-ui:
    container_name: kafka-ui
    image: provectuslabs/kafka-ui:latest
    ports:
      - 8080:8080
    environment:
      DYNAMIC_CONFIG_ENABLED: 'true'
    volumes:
      - ~/kui/config.yml:/etc/kafkaui/dynamic_config.yaml

综合配置

networks:
  kafka-net:
services:
  kafka:
    image: bitnami/kafka:latest
    container_name: kafka
    networks:
      - kafka-net
    ports:
      - 9092:9092
    environment:
      - KAFKA_CFG_NODE_ID=0
      - KAFKA_CFG_PROCESS_ROLES=controller,broker
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://10.1.20.28:9092
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
      - KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
    volumes:
      - ./kafka-data:/bitnami/kafka
  kafka-ui:
    image: provectuslabs/kafka-ui:latest
    container_name: kafka-ui
    depends_on:
      - kafka
    networks:
      - kafka-net
    ports:
      - "8080:8080"
    environment:
      - KAFKA_CLUSTERS_0_NAME=local
      - KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka:9092

kafka-data 需要提前创建并设置权限

mkdir kafka-data
sudo chown -R 1001:1001 ./kafka-data

KAFKA_CFG_ADVERTISED_LISTENERS 如果需要其他服务器访问,需要设置为公开的ip或者域名

评论 (0)

加载评论中...
RELATED NOTES
05 entries
01n8n 技术实践(三):自托管、扩展、安全与可观测性阅读文章 →02docker镜像资源阅读文章 →03mcp服务的node实现阅读文章 →04知乎邀请指定用户阅读文章 →05postgresql 入门阅读文章 →