1. 程式人生 > >Kafka面試題全套整理:訊息處理+高可用叢集+生產者與消費者例項

Kafka面試題全套整理:訊息處理+高可用叢集+生產者與消費者例項

有很多人問過我要過Kafka相關的面試題,我一直懶得整理,這幾天花了點時間,結合之前面試被問過的、別人諮詢過的、我會問別人的進行了相關的整理,也就幾十題,大家花個幾分鐘看看應該都會。面試題列表如下:

Kafka的用途有哪些?使用場景如何?

Kafka中的ISR、AR又代表什麼?ISR的伸縮又指什麼

Kafka中的HW、LEO、LSO、LW等分別代表什麼?

Kafka中是怎麼體現訊息順序性的?

Kafka中的分割槽器、序列化器、攔截器是否瞭解?它們之間的處理順序是什麼?

Kafka生產者客戶端的整體結構是什麼樣子的?

Kafka生產者客戶端中使用了幾個執行緒來處理?分別是什麼?

Kafka的舊版Scala的消費者客戶端的設計有什麼缺陷?

“消費組中的消費者個數如果超過topic的分割槽,那麼就會有消費者消費不到資料”這句話是否正確?如果不正確,那麼有沒有什麼hack的手段?

消費者提交消費位移時提交的是當前消費到的最新訊息的offset還是offset+1?

有哪些情形會造成重複消費?

那些情景下會造成訊息漏消費?

KafkaConsumer是非執行緒安全的,那麼怎麼樣實現多執行緒消費?

簡述消費者與消費組之間的關係

當你使用kafka-topics.sh建立(刪除)了一個topic之後,Kafka背後會執行什麼邏輯?

topic的分割槽數可不可以增加?如果可以怎麼增加?如果不可以,那又是為什麼?

topic的分割槽數可不可以減少?如果可以怎麼減少?如果不可以,那又是為什麼?

建立topic時如何選擇合適的分割槽數?

Kafka目前有那些內部topic,它們都有什麼特徵?各自的作用又是什麼?

優先副本是什麼?它有什麼特殊的作用?

Kafka有哪幾處地方有分割槽分配的概念?簡述大致的過程及原理

簡述Kafka的日誌目錄結構

Kafka中有那些索引檔案?

如果我指定了一個offset,Kafka怎麼查詢到對應的訊息?

如果我指定了一個timestamp,Kafka怎麼查詢到對應的訊息?

聊一聊你對Kafka的Log Retention的理解

聊一聊你對Kafka的Log Compaction的理解

聊一聊你對Kafka底層儲存的理解(頁快取、核心層、塊層、裝置層)

聊一聊Kafka的延時操作的原理

聊一聊Kafka控制器的作用

消費再均衡的原理是什麼?(提示:消費者協調器和消費組協調器)

Kafka中的冪等是怎麼實現的

Kafka中的事務是怎麼實現的(這題我去面試6加被問4次,照著答案念也要念十幾分鍾,面試官簡直湊不要臉。實在記不住的話...只要簡歷上不寫精通Kafka一般不會問到,我簡歷上寫的是“熟悉Kafka,瞭解RabbitMQ....”)

Kafka中有那些地方需要選舉?這些地方的選舉策略又有哪些?

失效副本是指什麼?有那些應對措施?

多副本下,各個副本中的HW和LEO的演變過程

為什麼Kafka不支援讀寫分離?

Kafka在可靠性方面做了哪些改進?(HW, LeaderEpoch)

Kafka中怎麼實現死信佇列和重試佇列?

Kafka中的延遲佇列怎麼實現(這題被問的比事務那題還要多!!!聽說你會Kafka,那你說說延遲佇列怎麼實現?)

Kafka中怎麼做訊息審計?

Kafka中怎麼做訊息軌跡?

Kafka中有那些配置引數比較有意思?聊一聊你的看法

Kafka中有那些命名比較有意思?聊一聊你的看法

Kafka有哪些指標需要著重關注?

怎麼計算Lag?(注意read_uncommitted和read_committed狀態下的不同)

Kafka的那些設計讓它有如此高的效能?

Kafka有什麼優缺點?

還用過什麼同質類的其它產品,與Kafka相比有什麼優缺點?

為什麼選擇Kafka?

在使用Kafka的過程中遇到過什麼困難?怎麼解決的?

怎麼樣才能確保Kafka極大程度上的可靠性?

聊一聊你對Kafka生態的理解

如果上面的問題都能掌握,相信在面試Kafka的時候肯定能夠完全應付。如果還應付不了,請告知公司及職位,我去投簡歷會會他。如果上面1/3題回答都有難度的話,是該好好學習一下Kafka啦。

覺得不錯請點贊支援,歡迎留言或進我的個人群855801563領取【架構資料專題目合集90期】、【BATJTMD大廠JAVA面試真題1000+】,本群專用於學習交流技術、分享面試機會,拒絕廣告,我也會在群內不定