springboot 项目依赖 spring-kafka启动项目有消费者的情况下,kafka中没有创建指定topic的前提条件下。
项目启动必报包含以下关键字的错误:
not present and missingTopicsFatal is true
网上的答案大部分是说加入以下配置即生效的:
spring.kafka.listener.missing-topics-fatal=false
但是往往还是无效的,具体得从springboot版本说起
具体解决方案有以下3种:
1、降级springboot版本到2.0.1.RELEASE
对应的为spring-kafka版本为2.1.5.RELEASE(ContainerProperties.missingTopicsFatal 未加入 没有启动检查)
2、springboot项目启动时自动配置对应的topic主题(有不创建,没有则自动创建)
@Bean
public NewTopic messageCenter() {
return new NewTopic("topic_name", 1, (short) 1);
}
3、升级到springboot 2.2.1.RELEASE
对应的的spring-kafka版本为2.3.3.RELEASE
ContainerProperties.missingTopicsFatal 默认为true 可以通过springboot的自动化配置方式修默认值
spring.kafka.listener.missing-topics-fatal=false