docker - 使用 Docker Compose 和 spotify/kafka 启动 Kafka 主题?

标签 docker apache-kafka 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

其次,与 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

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

<强> 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

最佳答案

相当晚,但您可以使用类似以下内容的 shell 脚本来创建您的主题:

command: >
  bash -c
  "(sleep 15s &&
  /opt/kafka_2.11-0.10.1.0/bin/kafka-topics.sh
  --create
  --zookeeper
  localhost:2181 --replication-factor 1 --partitions 1
  --topic my_topic &) && (supervisord -n)"

关于docker - 使用 Docker Compose 和 spotify/kafka 启动 Kafka 主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45549133/

相关文章:

sql - 为什么 Docker 找不到我要导入的 sql 文件?

docker - 如何通过 echo 命令向 mac 控制台发送消息? (适用于 Mac 的 docker )

docker - KEYSTORE.JKS 存在失败 - 退出代码 1 #662 - Confluent kafka

mongodb - docker-compose在mongodb中创建用户

java - 搭建 Java + svn + Eclipse+ Tomcat , 使用 docker 开发环境

docker - 如何在同一个网络上运行两个微服务?

docker - 无法从Docker Hub拉出graphdb-workbench

python - docker镜像中的pip卡住与本地安装的结果不同

amazon-web-services - 使用自托管 Kafka 作为 AWS Lambda 的事件源

java - Kafka : Single consumer group in multiple instances