apache-kafka - 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
解决方案
推荐阅读
- angular - Angular Material:将 sidenav 添加到几页?
- java - 将数据库中的字符串与 Android Studio 中的字符串进行比较
- android - SurfaceView 中的“资源”在哪里定义,如何从不同的类访问它?
- rascal - 从树中移除(删除)节点
- snowflake-cloud-data-platform - JSON to Relational Table 是否可以将条件插入到我的 2 列表的现有列中
- python - AttributeError:'NoneType' 对象在 owlready 库中没有属性 'some'
- azure-cosmosdb - 将 HTML 下拉列表连接到 Cosmos DB
- domain-driven-design - 在 CQRS 中的域事件处理程序中创建命令
- javascript - Chrome 扩展:内容策略抱怨内联事件处理程序,我找不到它
- node.js - 如何从节点 js 向浏览器发送分块的 gzip 响应