Ubuntu 卡夫卡代理在启动时不可用

Ubuntu 卡夫卡代理在启动时不可用,ubuntu,apache-kafka,Ubuntu,Apache Kafka,我在集群的ubuntu节点上设置了一个kafka 0.11.0.0实例。 直到几周前,一切都正常工作,今天我尝试启动它,在启动后出现以下错误: [2017-09-11 16:21:13,894] INFO [Kafka Server 0], started (kafka.server.KafkaServer) [2017-09-11 16:21:18,998] WARN Connection to node 0 could not be established. Broker may not b

我在集群的ubuntu节点上设置了一个kafka 0.11.0.0实例。 直到几周前,一切都正常工作,今天我尝试启动它,在启动后出现以下错误:

[2017-09-11 16:21:13,894] INFO [Kafka Server 0], started (kafka.server.KafkaServer)
[2017-09-11 16:21:18,998] WARN Connection to node 0 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
[2017-09-11 16:21:21,991] WARN Connection to node 0 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
... and so on...
我的server.properties:

############################# Server Basics #############################

# The id of the broker. This must be set to a unique integer for each broker.
broker.id=0

# Switch to enable topic deletion or not, default value is false
delete.topic.enable=true

############################# Socket Server Settings ##########################$

# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
#   FORMAT:
#     listeners = listener_name://host_name:port
#   EXAMPLE:
#     listeners = PLAINTEXT://your.host.name:9092
#listeners=PLAINTEXT://9092

# Hostname and port the broker will advertise to producers and consumers. If no$
# it uses the value for "listeners" if configured.  Otherwise, it will use the $
# returned from java.net.InetAddress.getCanonicalHostName().
advertised.listeners=PLAINTEXT://hidden_ip:55091
我编辑了adverted.listeners,因为有一个代理将请求重定向到代理。无论如何,直到几周前一切都很好

我开始卡夫卡的步骤:

1- service zookeeper start 
2- ./kafka_2.11-0.11.0.0/bin/kafka-server-start.sh ~/kafka_2.11-0.11.0.0/config/server.properties
有什么建议吗? 谢谢

I服务器。属性:

listeners=PLAINTEXT://hidden_ip:9092
运行时:
bin/kafka-topics.sh--create--zookeeper localhost:2181--replication factor 1--partitions 1--topic lt1
bin/kafka-console-producer.sh--代理列表localhost:9092--主题lt1

我得到的错误和你得到的一样。我试着运行:

bin/kafka-console-producer.sh --broker-list hidden_ip:9092 --topic lt1
它工作正常,没有错误。
所以我认为您应该检查kafka服务器使用了什么端口。当端口未建立或您连接了错误的ip时,会出现此错误。

PS:我在同一台机器上运行此功能。

我也有同样的问题

所以我先问动物园管理员一些数据

echo dump | nc localhost 2181
我得到了这样的东西

SessionTracker dump:
Session Sets (3):
0 expire at Sun Dec 03 18:15:48 GST 2017:
0 expire at Sun Dec 03 18:15:51 GST 2017:
1 expire at Sun Dec 03 18:15:54 GST 2017:
0x1601c9a25190000
ephemeral nodes dump:
Sessions with Ephemerals (1):
0x1601c9a25190000:
/controller
/brokers/ids/0
我理解这意味着我有1个可用的代理-它的id为0

那么,让我们来了解一下那个经纪人

bin/zookeeper-shell.sh localhost:2181 <<< "get /brokers/ids/0"
这让我相当吃惊纯文本://192.168.1.220:9092,所以当我将连接字符串更改为

bin/kafka-console-producer.sh  --broker-list PLAINTEXT://192.168.1.220:9092  --topic test
现在一切都成功了


祝你好运

我配置了kafka服务器。属性的侦听器为
listeners=PLAINTEXT://**10.127.96.151**:9092

但是我请求消费者作为
/kafka-console-consumer.sh--bootstrap server**localhost**:9092--topic topic1--从一开始
,然后它就会发出警告


当我将消费者引导服务器修复为10.127.96.151:9092时,它运行良好,不再发出警告

当我们开始搜索日志以查找错误的实际原因时,我们遇到了相同的情况

当我们启动Kafka集群时,它默认使用

listeners=PLAINTEXT://:9092
无法连接,无法找到主机

我们把线路改为

listeners=PLAINTEXT://<our ip address> :9092,
listeners=纯文本://:9092,
然后

listeners=纯文本://:9093,
在我们的server-1.properties(另一个代理id文件)中,我们在其他server.properties文件中复制了相同的内容,并重新启动了集群。

取消对此行的注释

侦听器=纯文本://:9092 将此更改为

侦听器=纯文本://127.0.0.1:9092
我在Windows10上也遇到了同样的问题,并在这篇文章中详细介绍了所有的答案。是什么给我造成了这个问题,我是如何解决的, 在我的新windows机器上,我安装了jre(jre-8u221),然后按照Apache Kafka文档中提到的步骤启动zookeeper、Kafka服务器、通过producer发送消息等。但是我遇到了与代理不可用相关的错误。 然后我下载了jdk(来自Oracle的jdk-8u221)并安装了它。设置JAVA_HOME和Path变量并重新启动机器。之后的一切都一气呵成

error message: "Connection to node -1 could not be established. Broker may not be available"
解决方案:


我得到这个错误是因为我在集群和本地上运行了不同版本的kafka。确保版本相同。我在
properties
tag

下的
pom.xml
中指定了版本。如果您使用的是Spring Boot,请查看是否在
application.properties
文件中设置了以下属性,假设仅为生产者应用程序:

spring.kafka.producer.bootstrap-servers=localhost:9092
否则,通常应采用以下方法:

kafka.bootstrap.servers=localhost:9200
我不必像其他人建议的那样更改
server.properties
文件中的
侦听器

使用spring boot、kafka(图像:spotify/kafka)和docker compose组合,您可能需要在项目中设置以下属性:

broker-addresses: <hostname>:9092
代理地址::9092
此外,docker compose中的服务需要按以下方式配置环境属性:

KAFKA_BOOTSTRAP_SERVERS: <hostname>:9092
KAFKA_引导_服务器::9092

希望这可能会对某些人有所帮助。

我确信这一问题现在已经解决,但我是在一个运行AWS ECS任务的Kafka客户端上得到的,该客户端试图连接到运行在EC2实例上的Kafka群集,问题是安全组。在集群的入站规则列表(ec2->实例->安全->(选择您的安全组)->编辑入站规则->(自定义TCP/9092/CIDR)->添加规则)中添加所有ECS任务允许的子网(ECS->集群->任务->详细信息->允许的子网)的CIDR解决了问题。

我做了同样的事情,但它对我不起作用。低于错误[2018-12-27 21:13:27169]警告[Consumer clientId=Consumer-1,groupId=mygroup]无法建立到节点0的连接。经纪人可能不在。(org.apache.kafka.clients.NetworkClient)您是否检查了server.log以查找原因。地址之间还有空格吗?是的,我查过了。地址之间没有空格。事实上,我是在检查kafka容错性,手动杀死本地多节点群集上的第一个节点。您是否尝试重新平衡?谢谢,您节省了我的时间。非常感谢。我被困在这个问题上,正要重新安装卡夫卡。你是最棒的。被困了3个小时试图找出问题所在)
broker-addresses: <hostname>:9092
KAFKA_BOOTSTRAP_SERVERS: <hostname>:9092