首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法从其码头集装箱的一侧连接到kafka

无法从其码头集装箱的一侧连接到kafka
EN

Stack Overflow用户
提问于 2021-08-29 17:29:32
回答 1查看 769关注 0票数 2

这是我的码头撰写文件:

代码语言:javascript
运行
复制
version: "3.7"

services:
  zookeeper:
    image: 'bitnami/zookeeper:latest'
    container_name: zookeeper
    ports: 
      - 2181:2181
    env_file: 
      - zookeeper.env
  
  kafka:
    image: 'bitnami/kafka:latest'
    container_name: kafka
    env_file:
      - kafka.env
    ports: 
      - 9093:9092
    depends_on:
      - zookeeper

这些也是我的.env文件:

kakfa.env

代码语言:javascript
运行
复制
KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
KAFKA_CFG_LISTENERS=INTERNAL://kafka:9092,EXTERNAL://localhost:9093
KAFKA_CFG_ADVERTISED_LISTENERS=INTERNAL://kafka:9092,EXTERNAL://localhost:9093
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_CFG_INTER_BROKER_LISTENER_NAME=INTERNAL
KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=1
ALLOW_PLAINTEXT_LISTENER=yes

zookeeper.env

代码语言:javascript
运行
复制
ZOOKEEPER_CLIENT_PORT=2181
ZOOKEEPER_TICK_TIME=2000
ALLOW_ANONYMOUS_LOGIN=yes

当我完成撰写文件时,一切似乎都很好,并且我有良好的telnet结果从码头容器外,在我的本地主机,到9093端口。

我编写了一个简单的生产者python文件,如下所示:

代码语言:javascript
运行
复制
import logging

from kafka import KafkaProducer

logging.basicConfig(level=logging.INFO)


class Producer():
    def __init__(self) -> None:
        self.conn = KafkaProducer(bootstrap_servers="localhost:9093")

    def produce(self):
        while True:
            try:
                self.conn.send("test", b'test')
            except KeyboardInterrupt:
                logging.info("Producer finished")
                break


if __name__ == "__main__":
    producer = Producer()
    producer.produce()

当我运行我的代码时,我会得到以下错误:

代码语言:javascript
运行
复制
WARNING:kafka.conn:DNS lookup failed for kafka:9092, exception was [Errno -3] Temporary failure in name resolution. Is your advertised.listeners (called advertised.host.name before Kafka 9) correct and resolvable?
ERROR:kafka.conn:DNS lookup failed for kafka:9092 (AddressFamily.AF_UNSPEC)

我也读过的帖子,但是我无法解决我的错误,我不知道该怎么做才能消除这个错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-30 00:39:44

你转发了错误的端口

主机上的9093需要映射到localhost:9093公告的端口

否则,您将连接到9093,它返回kafka:9092,如博客中所解释的那样。默认情况下,主机无法解析容器主机名。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68975387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档