【问题标题】:Kafka Advertised Listener when running in Docker在 Docker 中运行时的 Kafka 广告侦听器
【发布时间】:2021-06-08 06:13:22
【问题描述】:

作为 docker 和 kafka 世界的初学者, 我试图在我的本地机器上连接在桥接网络上的 docker 容器中运行的 kafka,现在我想从本地连接 kafka,我经历了这个link

以下是来自上述链接的 docker compose 快照

kafka0:
    image: "confluentinc/cp-enterprise-kafka:5.2.1"
    ports:
      - '9092:9092'
      - '29094:29094'
    depends_on:
      - zookeeper
    environment:
      […]
      # For more details see See https://rmoff.net/2018/08/02/kafka-listeners-explained/
      KAFKA_LISTENERS: LISTENER_BOB://kafka0:29092,LISTENER_FRED://kafka0:9092,LISTENER_ALICE://kafka0:29094
      KAFKA_ADVERTISED_LISTENERS: LISTENER_BOB://kafka0:29092,LISTENER_FRED://localhost:9092,LISTENER_ALICE://never-gonna-give-you-up:29094
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_BOB:PLAINTEXT,LISTENER_FRED:PLAINTEXT,LISTENER_ALICE:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_BOB
[…]

如果使用此配置,我可以从本地计算机连接到 kafka

kafkacat -b localhost:9092 \
> -L
Metadata for all topics (from broker 1002: localhost:9092/1002):
 1 brokers:
  broker 1002 at localhost:9092

但我不明白它是如何工作的,

我的理解是,当客户端想要连接到 kafka 时,它需要在这种情况下提供代理地址 KAFKA_LISTENERS,连接后客户端将获得包含 KAFKA_ADVERTISED_LISTENERS 中提供的代理实际 IP 信息的元数据

现在我的疑问是:根据 docker compose 中的配置,我们正在使用 FRED 侦听器,如果我们想从本地机器连接 kafka,但在 KAFKA_LISTENERS 中,我们给出了 LISTENER_FRED://kafka0:9092,它无法从本地访问,所以如何这个工作,只要我把它改成LISTENER_FRED://localhost:9092 出错了

kafkacat -b localhost:9092 -C -t beats
% ERROR: Failed to query metadata for topic beats: Local: Timed out

但如果在KAFKA_LISTENERS 中设置LISTENER_FRED://kafka0:9092 则有效

任何帮助将不胜感激。

【问题讨论】:

标签: docker apache-kafka


【解决方案1】:

当您调用 localhost:9092 时,它会被击中 kafka0 docker 实例。然后它作为 docker 环境的kafka0:9092 工作。因此,如果您配置了像 localhost:9092 这样的 docker kafka 侦听器,它不会受到影响,因为 docker localhost 没有与您的 localhost 映射

【讨论】:

  • 感谢@nipuna 的帮助,但是当使用 localhost:9092 并返回地址 kafka:9092 时,在本地运行的 kafka 客户端如何能够连接 kafka:9092,作为本地机器不知道 kafka:9092
  • 当你做端口映射时,映射发生了
猜你喜欢
  • 2020-09-19
  • 2019-05-25
  • 1970-01-01
  • 2011-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多