首页 > 解决方案 > Producer clientId=producer-1 Bootstrap broker localhost:9092 (id: -1 rack: null) 断开连接 - Spring Boot Kafka

问题描述

我正在关注以下 Spring Boot 和 Kafka 教程:https ://www.udemy.com/course/apache-kafka-with-java-spring-boot-theory-hands-on-coding/learn/lecture/15262698#questions/ 11033822并在我的 Windows 机器上安装了 Docker Desktop。

在此处输入图像描述

当我运行生产者时,它没有连接到 Kafka。我们需要做些什么来映射 windows 和 linux docker 端口吗?

[2m2021-11-11 22:24:14.355[0;39m [33m WARN[0;39m [35m6944[0;39m [2m---[0;39m [2m[ad | producer-1][0;39m [36morg.apache.kafka.clients.NetworkClient  [0;39m [2m:[0;39m [Producer clientId=producer-1] Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected
[2m2021-11-11 22:24:35.493[0;39m [33m WARN[0;39m [35m6944[0;39m [2m---[0;39m [2m[ad | producer-1][0;39m [36morg.apache.kafka.clients.NetworkClient  [0;39m [2m:[0;39m [Producer clientId=producer-1] Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected
[2m2021-11-11 22:24:40.987[0;39m [32m INFO[0;39m [35m6944[0;39m [2m---[0;39m [2m[on(2)-127.0.0.1][0;39m [36minMXBeanRegistrar$SpringApplicationAdmin[0;39m [2m:[0;39m Application shutdown requested.
[2m2021-11-11 22:24:40.990[0;39m [32m INFO[0;39m [35m6944[0;39m [2m---[0;39m [2m[on(2)-127.0.0.1][0;39m [36mo.a.k.clients.producer.KafkaProducer    [0;39m [2m:[0;39m [Producer clientId=producer-1] Closing the Kafka producer with timeoutMillis = 30000 ms.
[2m2021-11-11 22:24:56.633[0;39m [33m WARN[0;39m [35m6944[0;39m [2m---[0;39m [2m[ad | producer-1][0;39m [36morg.apache.kafka.clients.NetworkClient  [0;39m [2m:[0;39m [Producer clientId=producer-1] Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected
[2m2021-11-11 22:24:56.644[0;39m [32m INFO[0;39m [35m6944[0;39m [2m---[0;39m [2m[on(2)-127.0.0.1][0;39m [36morg.apache.kafka.common.metrics.Metrics [0;39m [2m:[0;39m Metrics scheduler closed
[2m2021-11-11 22:24:56.645[0;39m [32m INFO[0;39m [35m6944[0;39m [2m---[0;39m [2m[on(2)-127.0.0.1][0;39m [36morg.apache.kafka.common.metrics.Metrics [0;39m [2m:[0;39m Closing reporter org.apache.kafka.common.metrics.JmxReporter
[2m2021-11-11 22:24:56.645[0;39m [32m INFO[0;39m [35m6944[0;39m [2m---[0;39m [2m[on(2)-127.0.0.1][0;39m [36morg.apache.kafka.common.metrics.Metrics [0;39m [2m:[0;39m Metrics reporters closed
[2m2021-11-11 22:24:56.645[0;39m [32m INFO[0;39m [35m6944[0;39m [2m---[0;39m [2m[on(2)-127.0.0.1][0;39m [36mo.a.kafka.common.utils.AppInfoParser    [0;39m [2m:[0;39m App info kafka.producer for producer-1 unregistered

我使用 docker-compose.yml 文件进行设置

version: "3.7"

networks:
  kafka-net:
    name: kafka-net
    driver: bridge

services:
  zookeeper:
    image: zookeeper:3.7.0
    container_name: zookeeper
    restart: always
    networks:
      - kafka-net
    ports:
      - "2181:2181"
    volumes:
      - E:/development/kafka/docker-data/zookeeper:/bitnami/zookeeper

  kafka:
    image: wurstmeister/kafka:2.13-2.7.0
    container_name: kafka
    restart: always
    networks:
      - kafka-net
    ports:
      - "9092:9092"
    volumes:
       - E:/development/kafka/docker-data/kafka:/bitnami/kafka
    environment:
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: DOCKER_INTERNAL:PLAINTEXT,DOCKER_EXTERNAL:PLAINTEXT
      KAFKA_LISTENERS: DOCKER_INTERNAL://:29092,DOCKER_EXTERNAL://0.0.0.0:9092
      KAFKA_ADVERTISED_LISTENERS: DOCKER_INTERNAL://kafka:29092,DOCKER_EXTERNAL://${DOCKER_HOST_IP:-127.0.0.1}:9092
      KAFKA_INTER_BROKER_LISTENER_NAME: DOCKER_INTERNAL
      KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
      KAFKA_BROKER_ID: 1
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
    depends_on:
      - zookeeper

这里有记录 - https://github.com/javaHelper/Kafka-Kafka-Stream-With-Java-Spring-Boot-/blob/main/README.md

下面是代码春天

@Service
public class HelloKafkaProducer {

    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;
    
    public void sendHello(String name) {
        kafkaTemplate.send("t_hello", "Hello " + name);
    }
    
}

application.yml 中没有添加任何内容,因为它应该自动连接到 localhost:9092

标签: apache-kafkaspring-kafka

解决方案


推荐阅读