当前位置: 首页 > 知识库问答 >
问题:

Kafka Zookeeper:无法建立到节点-1的连接。经纪人可能不可用

赵俊晤
2023-03-14

我在Zookeeper和Kafka(各1个实例)中运行我的locahost。

我成功地从Kafka创建了一个主题:

./bin/kafka-topics.sh --zookeeper localhost:2181 --create --replication-factor 1 --partitions 1 --topic Hello-Nicola

Created topic "Hello-Nicola".

Kafka日志显示:

[2017-12-06 16:00:17,753] INFO [KafkaServer id=0] started (kafka.server.KafkaServer)
[2017-12-06 16:03:19,347] INFO [ReplicaFetcherManager on broker 0] Removed fetcher for partitions Hello-Nicola-0 (kafka.server.ReplicaFetcherManager)
[2017-12-06 16:03:19,393] INFO Loading producer state from offset 0 for partition Hello-Nicola-0 with message format version 2 (kafka.log.Log)
[2017-12-06 16:03:19,406] INFO Completed load of log Hello-Nicola-0 with 1 log segments, log start offset 0 and log end offset 0 in 35 ms (kafka.log.Log)
[2017-12-06 16:03:19,408] INFO Created log for partition [Hello-Nicola,0] in /tmp/kafka-logs with properties {compression.type -> producer, message.format.version -> 1.0-IV0, file.delete.delay.ms -> 60000, max.message.bytes -> 1000012, min.compaction.lag.ms -> 0, message.timestamp.type -> CreateTime, min.insync.replicas -> 1, segment.jitter.ms -> 0, preallocate -> false, min.cleanable.dirty.ratio -> 0.5, index.interval.bytes -> 4096, unclean.leader.election.enable -> false, retention.bytes -> -1, delete.retention.ms -> 86400000, cleanup.policy -> [delete], flush.ms -> 9223372036854775807, segment.ms -> 604800000, segment.bytes -> 1073741824, retention.ms -> 604800000, message.timestamp.difference.max.ms -> 9223372036854775807, segment.index.bytes -> 10485760, flush.messages -> 9223372036854775807}. (kafka.log.LogManager)
[2017-12-06 16:03:19,409] INFO [Partition Hello-Nicola-0 broker=0] No checkpointed highwatermark is found for partition Hello-Nicola-0 (kafka.cluster.Partition)
[2017-12-06 16:03:19,411] INFO Replica loaded for partition Hello-Nicola-0 with initial high watermark 0 (kafka.cluster.Replica)
[2017-12-06 16:03:19,413] INFO [Partition Hello-Nicola-0 broker=0] Hello-Nicola-0 starts at Leader Epoch 0 from offset 0. Previous Leader Epoch was: -1 (kafka.cluster.Partition)

但Zookeeper的日志显示:

2017-12-06 16:03:19,299 [myid:] - INFO  [ProcessThread(sid:0 cport:2181)::PrepRequestProcessor@653] - Got user-level KeeperException when processing sessionid:0x1000177fb3d0001 type:create cxid:0x43 zxid:0x26 txntype:-1 reqpath:n/a Error Path:/brokers/topics/Hello-Nicola/partitions/0 Error:KeeperErrorCode = NoNode for /brokers/topics/Hello-Nicola/partitions/0
2017-12-06 16:03:19,302 [myid:] - INFO  [ProcessThread(sid:0 cport:2181)::PrepRequestProcessor@653] - Got user-level KeeperException when processing sessionid:0x1000177fb3d0001 type:create cxid:0x44 zxid:0x27 txntype:-1 reqpath:n/a Error Path:/brokers/topics/Hello-Nicola/partitions Error:KeeperErrorCode = NoNode for /brokers/topics/Hello-Nicola/partitions

如果我尝试生成消息:

./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic Hello-Nicola
>ciao
[2017-12-06 16:04:21,897] WARN [Producer clientId=console-producer] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
[2017-12-06 16:04:22,000] WARN [Producer clientId=console-producer] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

server.properties(在Kafka中)是:

broker.id=0
listeners=PLAINTEXT://mylocal-0:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0

看来动物园管理员没有注册任何经纪人。

有什么建议吗?

共有3个答案

祁永嘉
2023-03-14

我发现了错误。在服务器启动时观察zookeeper日志,我注意到:

server.1=mylocal-0.:2888:3888

主机名称后带点(.)。

生成动物园管理员配置的脚本来自https://github.com/kubernetes/contrib/blob/master/statefulsets/zookeeper/zkGenConfig.sh

从内部看,我发现该域并未填满:

HOST=`hostname -s`
DOMAIN=`hostname -d`

function print_servers() {
    for (( i=1; i<=$ZK_REPLICAS; i++ ))
    do
        echo "server.$i=$NAME-$((i-1)).$DOMAIN:$ZK_SERVER_PORT:$ZK_ELECTION_PORT"
    done
}

对于我的例子(localhost ),我不需要域,所以我删除了那个变量。

现在动物园管理员和Kafka沟通没有错误。

巫马曜文
2023-03-14

更改:

#listeners=PLAINTEXT://:9092`

server.properties:

listeners=PLAINTEXT://localhost:9092

注意:您还需要取消注释此语句,即删除#符号。

柏明亮
2023-03-14

UPD:如果您在单节点模式下运行:

我在尝试部署应用程序时在火花控制台日志中看到了此消息。通过在server.properties中更改此参数来解决:

listeners=PLAINTEXT://myhostname:9092

listeners=PLAINTEXT://localhost:9092

确保您使用netstat-lptu在9092上进行java进程侦听

 类似资料:
  • 获取错误:“org.apache.kafka.clients.NetworkClient:[Consumer ClientID=Consumer-1,GroupID=Inter]无法建立到节点-1的连接。代理可能不可用。” 我尝试将Java版本切换到11和8以及各种属性 2019-08-22 16:25:20.580警告5865---[restartedMain]org.apache.kafka.

  • 我试图用Spring Boot 2.1.7启动Spring-Kafka。用Java12在localhost上发布。

  • 我在Windows子系统Linux上安装了kafka,并开始使用命令服务启动,所有服务都已启动。现在,当我尝试从Windows运行我的kafka-spring应用程序时,它显示以下错误:- 无法建立与节点-1(localhost/127.0.0.1:9092)的连接。经纪人可能不可用。 我的服务器属性是:- 我哪里出错了???

  • 我正试图在我的本地(windows 7虚拟桌面)中使用来自Kafka的消息 Zookeeper和kafka在同一台本地计算机上运行 创建主题 produce message kafka-console-producer--broker-list 127.0.0.1:9092--topic first_topic没有错误,我只是做Ctrl+C do end producing 使用邮件

  • 当尝试在 CentOS 上使用 Python 客户端本地连接到 Kafka 0.10.0.0 时,我有一个非常奇怪的问题。 我的连接选项非常简单且默认: 当我在Kafka的服务器中手动设置侦听器选项时。属性文件,如: 我得到了kafka.errors。NoBrokersAvailable,尽管我仍然可以使用curl或其他linux工具轻松连接到Kafka代理服务器。 无广告。侦听器或其他不推荐使用

  • 问题内容: 我只是不明白发生了什么。我的go应用程序无法连接到elasticsearch。该节点可用,已启动并正在运行。我在这里做错了什么? 这里有什么不对的地方?错误说 这是我在浏览器中命中GET请求时从elasticsearch返回的数据 } 问题答案: 当您继续在客户端中进行嗅探但群集没有可用节点时,通常会发生错误。您可以通过点击来检查集群的状态。 如果您不禁用嗅探功能,则Golang客户端