Topic( s) [xxx] is/are 不存在且 missingTopicsFatal 为真

Topic( s) [xxx] is/are not present and missingTopicsFatal is true

我在尝试将 kafka 与 spring 引导集成时收到以下异常:

java.lang.IllegalStateException: Topic(s) [pushEvent] is/are not present and missingTopicsFatal is true

基于此 ,我尝试将 spring.kafka.listener.missing-topics-fatal 属性 设置为 false。因为我有一个 jHipster 应用程序,所以我将以下配置添加到我的 application.yml:

spring:
  kafka:
    listener:
      missing-topics-fatal: false

不知何故,上面的配置没有生效,我仍然收到上面的异常。

我是不是在 yaml 配置中遗漏了什么?我需要做一些额外的事情吗?

您尝试生成消息的主题似乎未创建。 您可以使用以下选项之一解决此问题:

  • 正在手动创建主题:

    bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test

  • 通过在代理配置中将 auto.create.topics.enable 设置为 true 来启用自动主题创建。 (config/server.properties 文件在经纪人端)

auto.create.topics.enable: Enable auto creation of topic on the server

参考上面给出的答案(如果没有创建主题),如果您使用zookeeper来管理Kafka,那么只需执行下面给出的命令即可。

kafka-topics --create --topic name_of_topic --zookeeper localhost:2181 --replication-factor 1 --partitions 1