spring-boot-kafka启动报错,无法自动创建Topic

之前用SpringBoot集成Kafka的时候,后面运行就报一下错误:

Caused by: java.lang.IllegalStateException: Topic(s) [topic2, topic3] is/are not present and missingTopicsFatal is true at org.springframework.kafka.listener.AbstractMessageListenerContainer.checkTopics(AbstractMessageListenerContainer.java:351) ~[spring-kafka-2.3.0.RC1.jar:2.3.0.RC1] at org.springframework.kafka.listener.ConcurrentMessageListenerContainer.doStart(ConcurrentMessageListenerContainer.java:136) ~[spring-kafka-2.3.0.RC1.jar:2.3.0.RC1] at org.springframework.kafka.listener.AbstractMessageListenerContainer.start(AbstractMessageListenerContainer.java:308) ~[spring-kafka-2.3.0.RC1.jar:2.3.0.RC1] at org.springframework.kafka.config.KafkaListenerEndpointRegistry.startIfNecessary(KafkaListenerEndpointRegistry.java:309) ~[spring-kafka-2.3.0.RC1.jar:2.3.0.RC1] at org.springframework.kafka.config.KafkaListenerEndpointRegistry.start(KafkaListenerEndpointRegistry.java:256) ~[spring-kafka-2.3.0.RC1.jar:2.3.0.RC1] at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:182) ~[spring-context-5.2.0.BUILD-SNAPSHOT.jar:5.2.0.BUILD-SNAPSHOT] ... 14 common frames omitted

经过排查和寻找方案,才知道原因,我的Kafka版本是2.3.1,凡是2.2版本以上的,都添加了一个新的属性missingTopicsFatal,需要设置成false

因此需要在application.yml文件这样设置一下就Ok了

  kafka:
    producer:
      bootstrap-servers: localhost:9092
    consumer:
      bootstrap-servers: localhost:9092
      group-id: info
      enable-auto-commit: true
      auto-offset-reset: latest
    template:
      default-topic: info
    listener:
      missing-topics-fatal: false

 上一篇
认识SpringCloud(一) 认识SpringCloud(一)
一、什么是微服务架构主要是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自的进程中运行,服务之间通过基于HTTP的RESTFUL API进行通信协作 什么是RESTFUL? 简单来说就是用URL定位资源,用HTTP描述操作 二、
2019-12-16
下一篇 
spring boot项目打包成war并在tomcat上运行的步骤 spring boot项目打包成war并在tomcat上运行的步骤
一、修改打包形式在pom.xml里设置 <packaging>war</packaging> 二、移除嵌入式tomcat插件在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码,
2019-11-25
  目录