Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker macos上公布的\u侦听器存在问题_Docker_Apache Kafka_Kafkacat - Fatal编程技术网

Docker macos上公布的\u侦听器存在问题

Docker macos上公布的\u侦听器存在问题,docker,apache-kafka,kafkacat,Docker,Apache Kafka,Kafkacat,我在Mac电脑上用这个docker compose.yml启动卡夫卡: mydb: [...] environment: kafka_bootstrap_servers: kafka:9093 kafka: image: wurstmeister/kafka:2.13-2.6.0 ports: - "9092:9092" environment: KAFKA_CREATE_TOPICS: "m

我在Mac电脑上用这个
docker compose.yml
启动卡夫卡:

 mydb:
 [...]
   environment: 
     kafka_bootstrap_servers: kafka:9093

 kafka:
    image: wurstmeister/kafka:2.13-2.6.0
    ports:
      - "9092:9092"
    environment:
      KAFKA_CREATE_TOPICS: "mytopic:1:1"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      #KAFKA_LISTENERS: PLAINTEXT://:9092
      #KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092

      KAFKA_LISTENERS: LISTENER_INTERN://:9093,LISTENER_EXTERN://127.0.0.1:9092
      KAFKA_ADVERTISED_LISTENERS: LISTENER_INTERN://:9093,LISTENER_EXTERN://127.0.0.1:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_INTERN:PLAINTEXT,LISTENER_EXTERN:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_EXTERN

      KAFKA_BROKER_ID: 1
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
我有两个监听器,因为还有第二个容器
mydb
,它不能与
PLAINTEXT://127.0.0.1:9092
监听器一起工作

事实上,使用

      KAFKA_LISTENERS: PLAINTEXT://:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
与卡夫卡卡特一起工作。但是另一个容器无法连接到卡夫卡

现在我想通过

kafkacat -b 127.0.0.1:9092 -t mytopic -L
但它给出了这个错误

%6|1605191095.939|FAIL|rdkafka#producer-1| [thrd:127.0.0.1:9092/bootstrap]: 
127.0.0.1:9092/bootstrap: 
Disconnected while requesting ApiVersion: might be caused by incorrect security.protocol configuration 
(connecting to a SSL listener?) or broker version is < 0.10 (see api.version.request) (after 2ms in state APIVERSION_QUERY)

我做错了什么?

我反复使用了您的特定示例,但无法使其发挥作用

值得一提的是,我如何在Docker本地运行Kafka,并且可以从主机和其他容器访问它


如果您想继续使用现有方法并对其进行进一步调试,您可能会发现它很有用。

我使用了您的特定示例,但无法使其正常工作

值得一提的是,我如何在Docker本地运行Kafka,并且可以从主机和其他容器访问它


如果要继续使用现有方法并进一步调试它,您可能会发现它很有用。

您只将外部侦听器设置为将内部绑定到容器,而不允许远程连接

你需要

  KAFKA_LISTENERS: LISTENER_INTERN://kafka:9093,LISTENER_EXTERN://0.0.0.0:9092
  KAFKA_ADVERTISED_LISTENERS: LISTENER_INTERN://kafka:9093,LISTENER_EXTERN://127.0.0.1:9092
  KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_INTERN:PLAINTEXT,LISTENER_EXTERN:PLAINTEXT
  KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_INTERN

您只将外部侦听器设置为将内部绑定到容器,不允许远程连接

你需要

  KAFKA_LISTENERS: LISTENER_INTERN://kafka:9093,LISTENER_EXTERN://0.0.0.0:9092
  KAFKA_ADVERTISED_LISTENERS: LISTENER_INTERN://kafka:9093,LISTENER_EXTERN://127.0.0.1:9092
  KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_INTERN:PLAINTEXT,LISTENER_EXTERN:PLAINTEXT
  KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_INTERN

伟大的现在工作。我使用了你的设置,我想这是重点,不是wurstmeister的图片。同样,对我们有用。我们交换了
debezium/kafka
图像,使其与本地python应用程序一起工作:9092用于主机上的python,29092用于内部docker网络(connect等)。太棒了!现在工作。我使用了你的设置,我想这是重点,不是wurstmeister的图片。同样,对我们有用。我们交换了
debezium/kafka
图像,使其与本地python应用程序一起工作:9092用于主机上的python,29092用于内部docker网络(connect等)。