org.apache.kafka.clients.NetworkClient 引导代理 bootstrap-servers-ip:9092 已断开连接

问题描述 投票:0回答:2

我正在本地系统上运行 apache kafka,它运行得非常好。但在冒烟测试期间,我的应用程序无法连接到 kafka 集群。它不断地抛出以下错误:

[2016-11-22T23:04:35,017][WARN ][org.apache.kafka.clients.NetworkClient] Bootstrap broker <host1>:9092 disconnected
[2016-11-22T23:04:35,474][WARN ][org.apache.kafka.clients.NetworkClient] Bootstrap broker <host2>:9092 disconnected
[2016-11-22T23:04:35,951][WARN ][org.apache.kafka.clients.NetworkClient] Bootstrap broker <host1>:9092 disconnected
[2016-11-22T23:04:36,430][WARN ][org.apache.kafka.clients.NetworkClient] Bootstrap broker <host2>:9092 disconnected

我正在使用以下消费者配置进行连接:

propsMap.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "<host1>:9092,<host2>:9092);
propsMap.put("zookeeper.connect", "<host1>:2181,<host2>:2181");
propsMap.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, false);  
propsMap.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, "100");
propsMap.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, "15000");
propsMap.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
propsMap.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
propsMap.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
propsMap.put(ConsumerConfig.GROUP_ID_CONFIG, "test");

是否是烟雾服务器上的网络问题导致我的部署服务器无法连接到kafka服务器?因为它在我的本地和其他 2 个测试环境中运行良好。

会不会和kafka版本有关系?

或者在这种情况下我是否需要添加一些其他配置(例如 SSL)才能连接?

我是卡夫卡的新手,如果有人能指出我正确的方向,那真的会有帮助!

apache-kafka apache-zookeeper kafka-consumer-api spring-kafka
2个回答
0
投票

如果您使用的是 Kafka 0.9.x.x 客户端或更高版本(如果您使用的是 spring-kafka),则不需要

zookeeper.connect
属性(但这不会导致您的问题)。

如果经纪商宕机了,你应该得到类似的东西

WARN  o.apache.kafka.clients.NetworkClient - Connection to node -1 could not be established. Broker may not be available.

我建议您查看服务器日志,看看是否有任何有用的信息。您需要与您的管理员联系,以确定您是否需要 SSL/SASL/Kerberos 等进行连接。


0
投票

这可能是由于服务器移至不同地址或暂时不可用。 如果您仍然想继续执行此操作(假设服务器稍后会启动),但不希望日志在无限循环中继续打印“服务器已断开连接”,请使用此属性。

reconnect.backoff.ms

尝试重新连接到给定主机之前等待的基本时间量。这避免了在紧密循环中重复连接到主机。此退避适用于客户端与代理的所有连接尝试。

类型:长 默认值:50 有效值:[0,...]

默认情况下,它每 50 毫秒重试一次以重新连接失败的主机,这可以增加到,比方说,5 分钟(300,000 毫秒)。通过这样做,您的日志将不会打印无限断开消息。

[可选]此外,如果您使用 Apache Camel 进行路由目的,请在camel-kafka 组件 bean 定义中使用类似的听起来属性。

reconnectBackoffMs (producer)
© www.soinside.com 2019 - 2024. All rights reserved.