【问题标题】:publishing message to external Kafka Broker from docker container从 docker 容器向外部 Kafka Broker 发布消息
【发布时间】:2017-05-14 02:16:18
【问题描述】:

在我的 IDE 中,我可以使用一个 spring-boot 应用程序,该应用程序会向外部 kafka 代理生成消息(使用 Kafkaproducer)。但是一旦我在 docker 容器中托管了我的 spring-boot 应用程序,我的应用程序就不能再提交给代理。 这是错误消息:

    o.s.k.support.LoggingProducerListener: Exception thrown when sending a message with key='null' and payload='....' to topic Category: 
org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.
    org.springframework.kafka.core.KafkaProducerException: 
Failed to send; nested exception is org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

我用来运行 docker 的是:docker run -p 9001:9001 -d image_name 其中 9001 是我的 spring-boot 端口,我可以发布到该端口,只是一旦我的消息发布,它就不会到达外部代理. 我认为我有一个一般概念,即 Docker 容器生活在孤立的土地上,您必须打开/映射端口才能访问它(比如我的 -p 9002:9002),但它的工作方式是否与从容器?如果是这样,有人可以告诉我如何运行 docker 容器以便能够访问外部代理(假设代理 URL 是“192.168.1.1:9000”)?我认为我现在无法修改代理上的任何内容,但我的假设是,如果我可以通过我的 IDE 访问,为什么不能在 docker 中进行访问?感谢大家的帮助!

【问题讨论】:

    标签: docker apache-kafka kafka-producer-api


    【解决方案1】:

    这是由于我的 ip-forwarding = 0,一旦打开,我就可以发出请求。

    【讨论】:

      猜你喜欢
      • 2019-05-11
      • 2017-01-26
      • 2016-09-14
      • 1970-01-01
      • 2020-04-06
      • 2016-05-02
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      相关资源
      最近更新 更多