无法连接到 wurstmeister/kafka

问题描述 投票:0回答:3

我正在 ubuntu 14.04 LTS 机器上运行 wurstmeister/kafka。 Kafka 容器运行良好。但是我无法将我的微服务连接到这个容器。

Kafka docker-compose.yml:

version: '2'
services:
  zookeeper:
    image: user1/zookeeper:3.4.9
    ports:
      - "2181:2181"
  kafka:
    image: my-kafka
    ports:
      - "9092:9092"
    hostname: kafka-01
    environment:
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ADVERTISED_HOST_NAME: "kafka-01"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_CREATE_TOPICS: "topic1:1:1,topic2:1:1"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

用于微服务(myapp)的 docker-compose:

version: '2'

services:
  myapp:
    network_mode: 'bridge'
    extends:
      file: myapp.base.yml
      service: myapp
    links:
      - kafka

  zookeeper:
    network_mode: 'bridge'
    extends:
      file: zookeeper.yml
      service: zookeeper

  kafka:
    network_mode: 'bridge'
    extends:
      file: kafka.yml
      service: kafka
    links:
      - zookeeper

我已经在环境中链接了kafka:

kafkaHost=kafka-01:9092

请让我知道我做错了什么或者是否需要更多信息。预先感谢。

docker apache-kafka docker-compose
3个回答
4
投票

主机名应该是您在“链接”中指定的内容,即。 “卡夫卡”。正如 @dnephin 所说,不需要主机名。我认为你想要的实际上是 KAFKA_ADVERTISED_HOST_NAME 环境变量。

你有什么版本的docker?我在 Mac OS 上使用 docker 1.12.3,没有任何问题。

您可能还想尝试 Confluence docker 镜像:

这是我的示例 docker compose 文件:

version: "2"
services:
  web:
    image: nginx:latest
    links: 
      - kafka
  zookeeper:
    extends:
      file: kafka-services.yml
      service: zookeeper
  kafka:
    extends:
      file: kafka-services.yml
      service: kafka
    depends_on:
      - zookeeper

我的基本 kafka 服务撰写文件(kafka-services.yml):

version: '2'
services:
  zookeeper:
    image: confluentinc/cp-zookeeper:latest
    ports:
      - "32181:32181"
    environment:
      ZOOKEEPER_CLIENT_PORT: 32181
      ZOOKEEPER_TICK_TIME: 2000

  kafka:
    image: confluentinc/cp-kafka:latest
    ports:
     - "29092:29092"
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:32181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092

0
投票

hostname
字段不设置公共主机名,它设置内部容器主机名。一般没那么有用。

主机名由 docker 网络自动提供,使用

kafka
作为主机名。


0
投票

更新,因为看起来所有 wurstmeister docker 镜像现在都消失了。以下网址演示:

https://hub.docker.com/u/wurstmeister

当前出现 404 错误。

© www.soinside.com 2019 - 2024. All rights reserved.