无法连接到wsl上的kafka 1.0代理

mrzz3bfm  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(590)

我有一个当地的 Docker 示例,其中有3个Zookeeper和3个Kafka经纪人 1.0.0 以确保更新我们的环境将按预期工作。我在Kafka上创建了一个流处理器 1.0.0 ,它不消耗或产生任何主题-它只是初始化自己。
当我尝试运行此处理器时,收到以下错误消息:

Exception in thread "main" org.apache.kafka.streams.errors.BrokerNotFoundException: 
    Could not find any available broker. 
    Check your StreamsConfig setting 'bootstrap.servers'. 
    This error might also occur, if you try to connect to 
    pre-0.10 brokers. Kafka Streams requires broker version 0.10.1.x or higher.
        at org.apache.kafka.streams.processor.internals.StreamsKafkaClient.ensureOneNodeIsReady(StreamsKafkaClient.java:251)
        at org.apache.kafka.streams.processor.internals.StreamsKafkaClient.getAnyReadyBrokerId(StreamsKafkaClient.java:280)
        at org.apache.kafka.streams.processor.internals.StreamsKafkaClient.checkBrokerCompatibility(StreamsKafkaClient.java:348)
        at org.apache.kafka.streams.KafkaStreams.checkBrokerVersionCompatibility(KafkaStreams.java:712)
        at org.apache.kafka.streams.KafkaStreams.start(KafkaStreams.java:746)
        at com.overdrive.dataIntegration.ProcessorRunner$StandardProcessorRunner.StartApplication(ProcessorRunner.scala:29)
        at com.overdrive.streams.StreamProcessor$.main(StreamProcessor.scala:22)
        at com.overdrive.streams.StreamProcessor.main(StreamProcessor.scala)

我的docker示例是 localzoo1:2181 通过 localzoo3:2183 ,以及 localkafka1:9092 通过 localkafka3:9094 . 启用调试模式后,我可以看到流处理器的配置正在正确加载:

[2018-01-19 16:09:09,824] INFO [main] StreamsConfig values:
        application.id = test-stream-processor
        application.server =
        bootstrap.servers = [localkafka1:9092]
        //more values available upon request

我不认为这是docker的问题,原因有两个:(1)当docker在版本上运行kafka集群时,这个精确的设置工作得很好 0.11 ,流处理器也打开 0.11 ,并且(2)我还创建了一个本地kafka代理,而不是在docker中,并且得到了相同的错误。
如果我创建一个控制台使用者,如果我使用正确的主机名,它不会输出任何内容(在我的例子中, localkafka1:9092 ),如果我使用了不正确的主机名(如 defg:9092 ),它会很快出错。我所有的主题都是空的,所以很难知道它有多远。我无法在主题中放置任何数据,因为似乎没有任何内容能够完全解析到集群的连接。
最后,我一直在研究kafka代码,添加print语句,然后替换处理器中的jar并运行它。由此看来,节点状态 NetworkClient (英寸 org.apache.kafka.clients )陷入困境 CHECKING_API_VERSIONS 状态。有趣的是,它看起来像 discoverBrokerVersions 在需要时为final,以便在轮询过程中将其设置为false。进行此更改允许处理器连接到代理。
总而言之,我发现很难相信我在1.0版中发现了一个阻止所有流处理器连接到代理的bug,但是修改代码已经让事情开始工作(或者,至少,完全建立连接)。这是已知的问题吗?在这段时间里,有没有什么奇怪的变化 0.11 以及 1.0.0 ?
更新:此错误仅在通过wsl运行流处理器时发生;通过powershell运行它很好。

rxztt3cl

rxztt3cl1#

异常也可以说流应用程序和kafka代理程序之间没有网络连接。由于我们遇到了相同的问题,我们首先尝试从流应用程序所在的主机ping到kafka代理所在的主机。

相关问题