Проблема с подключением Apache Kafka и Zookeeper - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь создать многоузловой кластер Apache Kafka с помощью Docker Swarm. Для этого я использую следующий docker-compose.yml

version: '3.2'
services:
   zookeeper:
      image: wurstmeister/zookeeper
      ports:
         - "2181:2181"

   kafka:
      image: wurstmeister/kafka:latest
      deploy:
         mode: global
      ports:
         - target: 9094
           published: 9094
           protocol: tcp
           mode: host
      environment:
         HOSTNAME_COMMAND: "docker info | grep ^Name: | cut -d' ' -f 2" # Normal instances
         KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
         KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
         KAFKA_ADVERTISED_PROTOCOL_NAME: OUTSIDE
         KAFKA_ADVERTISED_PORT: 9094
         KAFKA_PROTOCOL_NAME: INSIDE
         KAFKA_PORT: 9092
         KAFKA_CREATE_TOPICS: myTopic:1:1
      volumes:
         - /var/run/docker.sock:/var/run/docker.sock

Но при создании службы kafka_kafka я сталкиваюсь со следующей ошибкой:

java.lang.IllegalArgumentException: Error creating broker listeners from 'PLAINTEXT://ugur:9094': No security protocol defined for listener PLAINTEXT
kafka_kafka.0.wx4chyussuuc@ugur    |    at kafka.utils.CoreUtils$.listenerListToEndPoints(CoreUtils.scala:312)
kafka_kafka.0.wx4chyussuuc@ugur    |    at kafka.server.KafkaConfig.advertisedListeners(KafkaConfig.scala:1300)
kafka_kafka.0.wx4chyussuuc@ugur    |    at kafka.server.KafkaConfig.validateValues(KafkaConfig.scala:1360)
kafka_kafka.0.wx4chyussuuc@ugur    |    at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:1338)
kafka_kafka.0.wx4chyussuuc@ugur    |    at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:1028)
kafka_kafka.0.wx4chyussuuc@ugur    |    at kafka.server.KafkaConfig$.fromProps(KafkaConfig.scala:1008)
kafka_kafka.0.wx4chyussuuc@ugur    |    at kafka.server.KafkaServerStartable$.fromProps(KafkaServerStartable.scala:28)
kafka_kafka.0.wx4chyussuuc@ugur    |    at kafka.Kafka$.main(Kafka.scala:59)
kafka_kafka.0.wx4chyussuuc@ugur    |    at kafka.Kafka.main(Kafka.scala)
kafka_kafka.0.wx4chyussuuc@ugur    | Caused by: java.lang.IllegalArgumentException: No security protocol defined for listener PLAINTEXT
kafka_kafka.0.wx4chyussuuc@ugur    |    at kafka.cluster.EndPoint$$anonfun$securityProtocol$1$1.apply(EndPoint.scala:48)
kafka_kafka.0.wx4chyussuuc@ugur    |    at kafka.cluster.EndPoint$$anonfun$securityProtocol$1$1.apply(EndPoint.scala:48)
kafka_kafka.0.wx4chyussuuc@ugur    |    at scala.collection.MapLike$class.getOrElse(MapLike.scala:128)
kafka_kafka.0.wx4chyussuuc@ugur    |    at scala.collection.AbstractMap.getOrElse(Map.scala:59)
kafka_kafka.0.wx4chyussuuc@ugur    |    at kafka.cluster.EndPoint$.securityProtocol$1(EndPoint.scala:47)
kafka_kafka.0.wx4chyussuuc@ugur    |    at kafka.cluster.EndPoint$.createEndPoint(EndPoint.scala:56)
kafka_kafka.0.wx4chyussuuc@ugur    |    at kafka.utils.CoreUtils$$anonfun$6.apply(CoreUtils.scala:309)
kafka_kafka.0.wx4chyussuuc@ugur    |    at kafka.utils.CoreUtils$$anonfun$6.apply(CoreUtils.scala:309)
kafka_kafka.0.wx4chyussuuc@ugur    |    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
kafka_kafka.0.wx4chyussuuc@ugur    |    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
kafka_kafka.0.wx4chyussuuc@ugur    |    at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
kafka_kafka.0.wx4chyussuuc@ugur    |    at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:35)
kafka_kafka.0.wx4chyussuuc@ugur    |    at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
kafka_kafka.0.wx4chyussuuc@ugur    |    at scala.collection.AbstractTraversable.map(Traversable.scala:104)
kafka_kafka.0.wx4chyussuuc@ugur    |    at kafka.utils.CoreUtils$.listenerListToEndPoints(CoreUtils.scala:309)

Я также открываю необходимые порты, и эти порты вот так:

К действию с

- ------ ----

9094 РАЗРЕШИТЬ ВСЕГДА
9092 РАЗРЕШЕНО В любом месте
8081 РАЗРЕШЕНО В любом месте
8080 РАЗРЕШИТЬ В любом месте
2377 РАЗРЕШЕНО В любом месте
7946 РАЗРЕШИТЬ В любом месте
4789 РАЗРЕШЕНО В любом месте
9094 (v6) РАЗРЕШИТЬ В любом месте (v6)
9092 (v6) РАЗРЕШАТЬ В любом месте (v6)
8081 (v6) РАЗРЕШАТЬ В любом месте (v6)
8080 (v6) РАЗРЕШАТЬ В любом месте (v6)
2377 (v6) РАЗРЕШАТЬ В любом месте (v6)
7946 (v6) Разрешено везде (v6)
4789 (v6) РАЗРЕШАТЬ В любом месте (v6)

1 Ответ

0 голосов
/ 11 сентября 2018

Вы пытались использовать файл docker-compose-swarm.yml, доступный на GitHub?

https://github.com/wurstmeister/kafka-docker/blob/master/docker-compose-swarm.yml

Может быть, ниже указано ключевое слово отсутствующего свойства:

KAFKA_ADVERTISED_LISTENERS: INSIDE://:9092,OUTSIDE://_{HOSTNAME_COMMAND}:9094
...