kafka 啟動(dòng)報(bào)錯(cuò) missingTopicsFatal is true的解決
kafka 啟動(dòng)報(bào)錯(cuò):missingTopicsFatal is true
報(bào)錯(cuò)信息
org.springframework.context.ApplicationContextException: Failed to start bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry'; nested exception is java.lang.IllegalStateException: Topic(s) [async] is/are not present and missingTopicsFatal is true
at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:185) ~[spring-context-5.2.0.RELEASE.jar!/:5.2.0.RELEASE]
at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:53) ~[spring-context-5.2.0.RELEASE.jar!/:5.2.0.RELEASE]
at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:360) ~[spring-context-5.2.0.RELEASE.jar!/:5.2.0.RELEASE]
at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:158) ~[spring-context-5.2.0.RELEASE.jar!/:5.2.0.RELEASE]
at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:122) ~[spring-context-5.2.0.RELEASE.jar!/:5.2.0.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:894) ~[spring-context-5.2.0.RELEASE.jar!/:5.2.0.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:162) ~[spring-boot-2.2.0.RELEASE.jar!/:2.2.0.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553) ~[spring-context-5.2.0.RELEASE.jar!/:5.2.0.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.0.RELEASE.jar!/:2.2.0.RELEASE]
報(bào)錯(cuò)原因:消費(fèi)監(jiān)聽(tīng)接口監(jiān)聽(tīng)的主題不存在時(shí),默認(rèn)會(huì)報(bào)錯(cuò)
解決方法:
配置文件中將listener的屬性missingTopicsFatal設(shè)置為false
spring:
kafka:
listener:
missing-topics-fatal: false
kafka常見(jiàn)報(bào)錯(cuò)警告異常解決
1.自行修改server.properties中broker id后造成與meta.properties中數(shù)據(jù)不匹配
kafka.common.InconsistentBrokerIdException: Configured broker.id 2 doesn't match stored broker.id 1 in meta.properties. If you moved your data, make sure your configured broker.id matches. If you intend to create a new broker, you should remove all data in your data directories (log.dirs).

2.__consumer_offsets這個(gè)topic是由kafka自動(dòng)創(chuàng)建的,默認(rèn)49個(gè),這個(gè)topic是不能被刪除的!
Error while executing topic command : Topic __consumer_offsets is a kafka internal topic and is not allowed to be marked for deletion.

為什么這里會(huì)是這樣存儲(chǔ)__consumer_offsets的呢:
- [1.] 將所有 N Broker 和待分配的 i 個(gè) Partition 排序
- [2.] 將第 i 個(gè) Partition 分配到第(i mod n)個(gè) Broker 上
3.刪除topic時(shí)
Topic frist is already marked for deletion.

徹底刪除topic:
- [1. ] 刪除Topic,delete.topic.enable=true這里要設(shè)置為true
- [2. ] 刪除log日志
- [3. ] 刪除ZK中的Topic記錄

命令:./bin/zkCli.sh
找到topic所在的目錄:ls /brokers/topics
執(zhí)行命令:rmr /brokers/topics/{topic name}即可,此時(shí)topic被徹底刪除。
另外被標(biāo)記為marked for deletion的topic你可以在zookeeper客戶端中通過(guò)命令獲得:ls /admin/delete_topics/{topic name},如果你刪除了此處的topic,那么marked for deletion 標(biāo)記消失
當(dāng)然,這里是你delete.topic.enable設(shè)置為false時(shí)Zookeeper下才會(huì)有這個(gè)節(jié)點(diǎn)。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot框架阿里開(kāi)源低代碼工具LowCodeEngine
這篇文章主要為大家介紹了springboot框架阿里開(kāi)源低代碼LowCodeEngine工具使用詳解有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
簡(jiǎn)單了解Java刪除字符replaceFirst原理及實(shí)例
這篇文章主要介紹了簡(jiǎn)單了解Java刪除字符replaceFirst原理及實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
解決參數(shù)命名不規(guī)范,造成使用@NotNull進(jìn)行校驗(yàn)出現(xiàn)的問(wèn)題
這篇文章主要介紹了解決參數(shù)命名不規(guī)范,造成使用@NotNull進(jìn)行校驗(yàn)出現(xiàn)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01

