【问题标题】:Failed to resolve 'kafka:9092': Temporary failure in name resolution无法解析“kafka:9092”:名称解析暂时失败
【发布时间】:2021-06-02 19:47:16
【问题描述】:

我遇到了一些问题

%3|1622567567.487|失败|rdkafka#consumer-2| [thrd:GroupCoordinator]: GroupCoordinator: kafka:9092: Failed to resolve 'kafka:9092': 名称解析暂时失败(在 CONNECT 状态 27431 毫秒后,1 个相同的错误被抑制)

如何解决这个问题,知道吗? 截图中描述的问题

nkafka-console-app:
    build: 
      context: dotNet/examples/
      dockerfile: Src/KafkaConsoleApp/Dockerfile
    environment:
      - producer_topic=console_topic_test
      - consumer_topic=console_topic_test
      - kafka_endpoint=kafka:9092
    depends_on:
      - kafka   
 zookeeper:
    image: confluentinc/cp-zookeeper:5.2.1
    restart: always
    environment:
     ZOOKEEPER_SERVER_ID: 1
     ZOOKEEPER_CLIENT_PORT: "2181"
     ZOOKEEPER_TICK_TIME: "2000"
    ports:
      - "2181:2181"

kafka:
    image: confluentinc/cp-enterprise-kafka:5.2.1
    depends_on:
      - zookeeper
    ports:
      - "29092:29092"
    environment:
      KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 
var config = new ProducerConfig { BootstrapServers = conf.kafka_endpoint, BatchSize = 100000, LingerMs = 100 };

var configConsumer = new ConsumerConfig
                {
                    BootstrapServers = kafkaEndpoint,
                    EnableAutoOffsetStore = false,
                    EnableAutoCommit = true,
                    AutoCommitIntervalMs = 10000,
                    AutoOffsetReset = AutoOffsetReset.Earliest,
                    GroupId = "group.id"
                };

动物园管理员日志

【问题讨论】:

  • 如何启动容器?
  • 您的消费者放置在哪个容器中?
  • 我使用 docker-compose 所有图片放在一个容器中
  • 我在您的 docker-compose 文件中没有看到控制台应用容器?
  • 我忘了添加描述。我刚刚添加了

标签: c# docker apache-kafka docker-compose


【解决方案1】:

在您的图像中,代理因无法解析 zookeeper:2181 而死亡。因此,您的应用将无法解析 kafka:9092,因为代理未运行。

您应该运行 docker-compose logs zookeeper 来验证它是否可以正常启动。

【讨论】:

  • 好吧,但是为什么动物园管理员死了?我必须添加什么配置?
  • 另外,depends_on 并不能确保服务真正启动成功,只保证容器按顺序启动。我一般建议运行docker-compose up -d zookeeper kafka,然后等待一分钟,然后再启动您自己的应用程序
  • 我刚刚添加了日志,请看截图
  • 我刚刚尝试获取新日志,但现在 docker-compose logs zookeeper 没有响应。 Docker 崩溃了
  • 我假设您使用的是 Windows?您需要将 Docker 内存增加到至少 4GB
【解决方案2】:

当我使用docker stats 时,我注意到ms 服务器占用了大量内存。这是我问题的根源

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    相关资源
    最近更新 更多