apache-kafka - 在本地主机上设置 Kafka 的问题
问题描述
我在尝试在本地计算机上设置 kafaka(版本 2.12-2.4.0)时遇到了一个问题: https ://kafka.apache.org/quickstart
通过遵循一些在线教程,我创建了一个非常简单的 spring-boot 应用程序,它有一个生产者和消费者。当我启动我的应用程序时,它会旋转 30 秒,然后开始在日志中抛出错误,试图创建一个带有连接错误的主题。
我想也许我的 spring-boot 应用程序配置错误,所以我尝试从命令行创建一个主题,但我遇到了类似的错误:
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic testing
Error while executing topic command : org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment.
[2020-02-11 21:57:06,545] ERROR java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment.
at org.apache.kafka.common.internals.KafkaFutureImpl.wrapAndThrow(KafkaFutureImpl.java:45)
at org.apache.kafka.common.internals.KafkaFutureImpl.access$000(KafkaFutureImpl.java:32)
at org.apache.kafka.common.internals.KafkaFutureImpl$SingleWaiter.await(KafkaFutureImpl.java:89)
at org.apache.kafka.common.internals.KafkaFutureImpl.get(KafkaFutureImpl.java:260)
at kafka.admin.TopicCommand$AdminClientTopicService.createTopic(TopicCommand.scala:225)
at kafka.admin.TopicCommand$TopicService.createTopic(TopicCommand.scala:194)
at kafka.admin.TopicCommand$TopicService.createTopic$(TopicCommand.scala:189)
at kafka.admin.TopicCommand$AdminClientTopicService.createTopic(TopicCommand.scala:217)
at kafka.admin.TopicCommand$.main(TopicCommand.scala:61)
at kafka.admin.TopicCommand.main(TopicCommand.scala)
Caused by: org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment.
Kafka 和 zookeeper 已启动并运行,但没有任何东西可以连接到 kafka。
解决方案
我注意到 kafka 日志说它正在监听 0.0.0.0:9092:
INFO Awaiting socket connections on 0.0.0.0:9092. (kafka.network.Acceptor)
我进入 server.properties 并将所有 localhost 值更改为:
# 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://127.0.0.1:9092
这解决了问题。我不知道这是否是我的笔记本电脑的问题,但我想节省其他人的时间。我不必更改我的 spring-boot 连接配置,连接到 localhost 仍然有效。
推荐阅读
- indexing - 如何索引两个不同的图表以始终从零开始
- excel - 每次更改值时如何调用Excel函数?
- snakemake - snakemake 随机将输出识别为不完整
- android - 底部的 Instagram 选项菜单
- javascript - Lite-server 无法启动,原因是“Unexpected token ...”
- c++ - 存储字符串文字指针是否安全?
- python - 寻找一种简化的方法来计算数组之间的成对相关性
- java - 没有比较器的java 8 Hashmap中的红黑树实现
- angular - 错误 TS2769:没有重载匹配此调用。键入'字符串 | null' 不可分配给类型 'string | 细绳[]'
- javascript - Javascript 添加年初至今并输入 html 输入