使用Docker Compose和Spotify / kafka启动Kafka主题?

ter*_*abl 5 apache-kafka docker docker-compose

我正在尝试将Kafka主题连接到前端Java Spring应用程序。我正在使用Docker Compose,并尝试使用两个不同的Kafka映像进行连接。

使用wurstmeister / kafka,我可以通过该服务在我的docker.compose.yml文件中启动和运行Kafka主题。但是我无法将创建的主题连接到前端Java Spring应用程序。

kafka:
    image: wurstmeister/kafka:0.10.2.0
    ports:
      - "9092:9092"
    expose:
      - "9092"
      - "2181"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: localhost
      KAFKA_CREATE_TOPICS: "test-topic1:1:1, test-topic2:1:1"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - zookeeper
Run Code Online (Sandbox Code Playgroud)

其次,使用spotify / kafka,我很难用Kafka创建主题。在文档中,它正在寻找主题作为环境变量,但是以下docker-compose.yml服务并未创建主题。我也尝试在引号周围加上引号,test-topic但效果不佳。

kafka:
    image: spotify/kafka
    ports:
      - "9092:9092"
      - "2181:2181"
    hostname: kafka
    expose:
      - "9092"
      - "2181"
    environment:
      TOPICS: test-topic
Run Code Online (Sandbox Code Playgroud)

我不知道这是否有必要,但是我的整个docker-compose.yml文件如下,请注意,仅当您使用时,zookeeper服务才是必需的wurstmeister/kafka

docker-compose.yml

version: '2'
services:
  # zookeeper:
  #   image: wurstmeister/zookeeper
  #   ports:
  #     - "2181:2181"
  kafka:
    image: spotify/kafka
    ports:
      - "9092:9092"
      - "2181:2181"
    hostname: kafka
    expose:
      - "9092"
      - "2181"
    environment:
      TOPICS: test-topic
  redis:
    image: redis
    ports:
      - "6379"
    restart: always
  kafka-websocket-connector:
    build: ./kafka-websocket-connector
    image: andrewterra/kafka-websocket-connector
    ports:
      - "8077:8077"
    #   - "9092:9092"
    depends_on:
      - kafka
      - redis
    #   - zookeeper
    links:
      - kafka
      - redis
Run Code Online (Sandbox Code Playgroud)

sri*_*lls 0

环境TOPICS变量仅用于图像kafkaproxyhttps://github.com/spotify/docker-kafka#running-the-proxy

对于kafka图像,您需要与客户创建主题。

  • 如何?请提供详细信息。 (2认同)