Not able to connect to wurstmeister/kafka

Refresh

December 2018

Views

1.4k time

3

I am running wurstmeister/kafka in a ubuntu 14.04 LTS machine. Kafka container is running fine. However I am not able to connect my microservice to this container.

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

docker-compose for microservice(myapp):

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

I have linked kafka in an env:

kafkaHost=kafka-01:9092

Please let me know what am I doing wrong or if more info is required. Thanks in advance.

2 answers

2

Имя хоста должно быть то, что вы указали в разделе «ссылки», то есть. «Кафка». Как @dnephin сказал имя хоста не требуется. Я думаю, что вы хотите на самом деле KAFKA_ADVERTISED_HOST_NAME переменная окружения.

Какую версию грузчика у вас есть? Я использую докер 1.12.3 на Mac OS без проблем.

Вы также можете попробовать Docker изображения Confluent:

Вот мой пример файла докер 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

Моя база Кафка услуги составляют файл (Кафка-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качестве имени хоста.