首页 > 解决方案 > Spring Boot Kafka 启动错误“无法建立与节点 -1 的连接。代理可能不可用。”

问题描述

我正在尝试使用 Java 12 在本地主机上使用 Spring Boot 2.1.7.RELEASE 启动 Spring-Kafka。

出现错误:“org.apache.kafka.clients.NetworkClient:[Consumer clientId=consumer-1, groupId=inter] 无法建立到节点 -1 的连接。代理可能不可用。”

我尝试将 Java 版本切换到 11 和 8 以及各种属性

spring:
  kafka:
    consumer:
      #bootstrap-servers: localhost:9092
      group-id: inter
      auto-offset-reset: earliest
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
    producer:
      bootstrap-servers: localhost:9092
@Service
public class KafkaHalloWorldMessagingService {

    private KafkaTemplate<String, String> kafkaTemplate;

    @Autowired
    public KafkaHalloWorldMessagingService(KafkaTemplate<String, String> kafkaTemplate) {
        this.kafkaTemplate = kafkaTemplate;
    }

    public void sendHalloToTheSystem(String messageToSend) {
        kafkaTemplate.send("interlinked.hallo.topic", messageToSend);
    }
}

@Component
public class KafkaHalloWorldListener {

    @KafkaListener(topics = "interlinked.hallo.topics", groupId = "inter")
    public void handle(String messageToListenTo) {
        System.out.println(messageToListenTo.toUpperCase());
    }
}

2019-08-22 16:25:20.580 WARN 5865 --- [restartedMain] org.apache.kafka.clients.NetworkClient:[Consumer clientId=consumer-1, groupId=inter] 无法建立到节点 -1 的连接。经纪人可能不可用。

标签: springspring-bootapache-kafkaspring-kafka

解决方案


确保 yml 文件中的引导服务器值和 Kafka server.properties 文件中的侦听器值相同。

更新 server.properties 文件中的这两个值。可以在Kafka下载目录的config文件夹中看到。

zookeeper.connect=您的 IpV4 地址:2181

listeners=PLAINTEXT://您的 IpV4 地址:9092

例如:zookeeper.connect=10.147.2.161:2181

为什么消费者的引导服务器属性被注释掉了?

请也将生产者的引导服务器值用于消费者。

spring.kafka.bootstrap-servers = Your IpV4 addrees:9092

或拆分

producer:
     bootstrap-servers: =Your IpV4 addrees:9092
consumer:
     bootstrap-servers: =Your IpV4 addrees:9092:

希望你的动物园管理员和卡夫卡起来了。


推荐阅读