Kafka的常见错误分析
1、UnknownTopicOrPartitionException
org.apache.kafka.common.errors.UnknownTopicOrPartitionException: This server does not host this topic-partition報(bào)錯(cuò)內(nèi)容:分區(qū)數(shù)據(jù)不在
原因分析:producer向不存在的topic發(fā)送消息,用戶可以檢查topic是否存在 或者設(shè)置auto.create.topics.enable參數(shù)
2、LEADER_NOT_AVAILABLE
WARN Error while fetching metadata with correlation id 0 : {test=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient報(bào)錯(cuò)內(nèi)容:leader不可用
原因分析:原因很多 topic正在被刪除 正在進(jìn)行l(wèi)eader選舉 使用kafka-topics腳本檢查leader信息
進(jìn)而檢查broker的存活情況 嘗試重啟解決
3、NotLeaderForPartitionException
org.apache.kafka.common.errors.NotLeaderForPartitionException: This server is not the leader for that topic-partition報(bào)錯(cuò)內(nèi)容:broker已經(jīng)不是對(duì)應(yīng)分區(qū)的leader了
原因分析:發(fā)生在leader變更時(shí) 當(dāng)leader從一個(gè)broker切換到另一個(gè)broker時(shí),要分析什么原因引起了leader的切換
4、TimeoutException
org.apache.kafka.common.errors.TimeoutException: Expiring 5 record(s) for test-0: 30040 ms has passe報(bào)錯(cuò)內(nèi)容:請(qǐng)求超時(shí)
原因分析:觀察哪里拋出的 觀察網(wǎng)絡(luò)是否能通 如果可以通 可以考慮增加request.timeout.ms的值
5、RecordTooLargeException
WARN async.DefaultEventHandler: Produce request with correlation id 92548048 failed due to [TopicName,1]: org.apache.kafka.common.errors.RecordTooLargeException報(bào)錯(cuò)內(nèi)容:消息過(guò)大
原因分析:生產(chǎn)者端 消息處理不過(guò)來(lái)了 可以增加 request.timeout.ms 減少 batch.size
6、Closing socket connection
Closing socket connection to/127,0,0,1.(kafka.network.Processor)報(bào)錯(cuò)內(nèi)容:連接關(guān)閉
原因分析:如果javaApi producer版本高,想在客戶端consumer啟動(dòng)低版本驗(yàn)證,會(huì)不停的報(bào)錯(cuò)
無(wú)法識(shí)別客戶端消息。
7、ConcurrentModificationException
java.util.ConcurrentModificationException: KafkaConsumer is not safe for multi-threaded access報(bào)錯(cuò)內(nèi)容:線程不安全
原因分析:Kafka consumer是非線程安全的
8、NetWorkException
[kafka-producer-network-thread | producer-1] o.apache.kafka.common.network.Selector : [Producer clientId=producer-1] Connection with / disconnected報(bào)錯(cuò)內(nèi)容:網(wǎng)絡(luò)異常
原因分析:網(wǎng)絡(luò)連接中斷 檢查broker的網(wǎng)絡(luò)情況
9、ILLEGAL_GENERATION
ILLEGAL_GENERATION occurred while committing offsets for group報(bào)錯(cuò)內(nèi)容:無(wú)效的“代”原因分析:consumer錯(cuò)過(guò)了 rebalance 原因是consumer花了大量時(shí)間處理數(shù)據(jù)。
需要適當(dāng)減少 max.poll.records值 增加 max.poll.interval.ms 或者想辦法增加消息處理的速度。
總結(jié)
以上是生活随笔為你收集整理的Kafka的常见错误分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 使用cloudera manager搭建
- 下一篇: 大剑无锋之JVM 堆内存溢出后,其他线程