14個最多見的Kafka面試題及答案【轉】

 

原創 IT168企業級 2017-08-21 17:40

本文爲您盤點了14個最多見的Kafka面試題,同時也是對Apache Kafka初學者必備知識點的一個整理與介紹。面試

14個最多見的Kafka面試題及答案

一、請說明什麼是Apache Kafka?服務器

Apache Kafka是由Apache開發的一種發佈訂閱消息系統,它是一個分佈式的、分區的和重複的日誌服務。網絡

二、請說明什麼是傳統的消息傳遞方法?分佈式

傳統的消息傳遞方法包括兩種:性能

  • 排隊:在隊列中,一組用戶能夠從服務器中讀取消息,每條消息都發送給其中一我的。spa

  • 發佈-訂閱:在這個模型中,消息被廣播給全部的用戶。設計

三、請說明Kafka相對傳統技術有什麼優點?代理

Apache Kafka與傳統的消息傳遞技術相比優點之處在於:日誌

快速:單一的Kafka代理能夠處理成千上萬的客戶端,每秒處理數兆字節的讀寫操做。對象

可伸縮:在一組機器上對數據進行分區和簡化,以支持更大的數據

持久:消息是持久性的,並在集羣中進行復制,以防止數據丟失。

設計:它提供了容錯保證和持久性

四、在Kafka中broker的意義是什麼?

在Kafka集羣中,broker術語用於引用服務器。

五、Kafka服務器能接收到的最大信息是多少?

Kafka服務器能夠接收到的消息的最大大小是1000000字節。

六、解釋Kafka的Zookeeper是什麼?咱們能夠在沒有Zookeeper的狀況下使用Kafka嗎?

Zookeeper是一個開放源碼的、高性能的協調服務,它用於Kafka的分佈式應用。

不,不可能越過Zookeeper,直接聯繫Kafka broker。一旦Zookeeper中止工做,它就不能服務客戶端請求。

  • Zookeeper主要用於在集羣中不一樣節點之間進行通訊

  • 在Kafka中,它被用於提交偏移量,所以若是節點在任何狀況下都失敗了,它均可以從以前提交的偏移量中獲取

  • 除此以外,它還執行其餘活動,如: leader檢測、分佈式同步、配置管理、識別新節點什麼時候離開或鏈接、集羣、節點實時狀態等等。

七、解釋Kafka的用戶如何消費信息?

在Kafka中傳遞消息是經過使用sendfile API完成的。它支持將字節從套接口轉移到磁盤,經過內核空間保存副本,並在內核用戶之間調用內核。

八、解釋如何提升遠程用戶的吞吐量?

若是用戶位於與broker不一樣的數據中心,則可能須要調優套接口緩衝區大小,以對長網絡延遲進行攤銷。

九、解釋一下,在數據製做過程當中,你如何能從Kafka獲得準確的信息?

在數據中,爲了精確地得到Kafka的消息,你必須遵循兩件事: 在數據消耗期間避免重複,在數據生產過程當中避免重複。

這裏有兩種方法,能夠在數據生成時準確地得到一個語義:

  • 每一個分區使用一個單獨的寫入器,每當你發現一個網絡錯誤,檢查該分區中的最後一條消息,以查看您的最後一次寫入是否成功

  • 在消息中包含一個主鍵(UUID或其餘),並在用戶中進行反複製

十、解釋如何減小ISR中的擾動?broker何時離開ISR?

ISR是一組與leaders徹底同步的消息副本,也就是說ISR中包含了全部提交的消息。ISR應該老是包含全部的副本,直到出現真正的故障。若是一個副本從leader中脫離出來,將會從ISR中刪除。

十一、Kafka爲何須要複製?

Kafka的信息複製確保了任何已發佈的消息不會丟失,而且能夠在機器錯誤、程序錯誤或更常見些的軟件升級中使用。

十二、若是副本在ISR中停留了很長時間代表什麼?

若是一個副本在ISR中保留了很長一段時間,那麼它就代表,跟蹤器沒法像在leader收集數據那樣快速地獲取數據。

1三、請說明若是首選的副本不在ISR中會發生什麼?

若是首選的副本不在ISR中,控制器將沒法將leadership轉移到首選的副本。

1四、有可能在生產後發生消息偏移嗎?

在大多數隊列系統中,做爲生產者的類沒法作到這一點,它的做用是觸發並忘記消息。broker將完成剩下的工做,好比使用id進行適當的元數據處理、偏移量等。

做爲消息的用戶,你能夠從Kafka broker中得到補償。若是你注視SimpleConsumer類,你會注意到它會獲取包括偏移量做爲列表的MultiFetchResponse對象。此外,當你對Kafka消息進行迭代時,你會擁有包括偏移量和消息發送的MessageAndOffset對象。

轉自

14個最多見的Kafka面試題及答案http://www.toutiao.com/i6456660580726997517/

相關文章
相關標籤/搜索