Apache Kafka的受歡迎程度很高,Kafka擁有充足的就業機會和職業前景。此外,在這個時代擁有kafka知識是一條快速增加的道路。因此,在這篇文章中,咱們收集了Apache Kafka面試中常見的問題,並提供了答案。所以,若是您但願參加Apache Kafka面試,這是一份不錯的指南。這將有助於您成功參加Kafka面試。java
文章有些長,每題都附帶了答案解析,但願大家看了可以有所收穫,同時以爲不錯的朋友能夠轉發支持下和關注下我,之後還會有更多精選文章分享給你們!
這是Kafka最受歡迎的面試問題清單,以及任何面試官均可能問到的答案。因此,繼續學習直到本文的結尾,但願對你有幫助!面試
問題1:什麼是Apache Kafka?設計模式
答:Apache Kafka是一個發佈 - 訂閱開源消息代理應用程序。這個消息傳遞應用程序是用「scala」編碼的。基本上,這個項目是由Apache軟件啓動的。Kafka的設計模式主要基於事務日誌設計。
問題2:Kafka中有哪幾個組件?安全
答:Kafka最重要的元素是:服務器
主題:Kafka主題是一堆或一組消息。生產者:在Kafka,生產者發佈通訊以及向Kafka主題發佈消息。消費者:Kafka消費者訂閱了一個主題,而且還從主題中讀取和處理消息。經紀人:在管理主題中的消息存儲時,咱們使用Kafka Brokers。
問題3:解釋偏移的做用。併發
答:給分區中的消息提供了一個順序ID號,咱們稱之爲偏移量。所以,爲了惟一地識別分區中的每條消息,咱們使用這些偏移量。
問題4:什麼是消費者組?分佈式
答:消費者組的概念是Apache Kafka獨有的。基本上,每一個Kafka消費羣體都由一個或多個共同消費一組訂閱主題的消費者組成。
問題5:ZooKeeper在Kafka中的做用是什麼?工具
答:Apache Kafka是一個使用Zookeeper構建的分佈式系統。雖然,Zookeeper的主要做用是在集羣中的不一樣節點之間創建協調。可是,若是任何節點失敗,咱們還使用Zookeeper從先前提交的偏移量中恢復,由於它作週期性提交偏移量工做。
問題6:沒有ZooKeeper可使用Kafka嗎?性能
答:繞過Zookeeper並直接鏈接到Kafka服務器是不可能的,因此答案是否認的。若是以某種方式,使ZooKeeper關閉,則沒法爲任何客戶端請求提供服務。
問題8:爲何Kafka技術很重要?學習
答:Kafka有一些優勢,所以使用起來很重要:
高吞吐量:咱們在Kafka中不須要任何大型硬件,由於它可以處理高速和大容量數據。此外,它還能夠支持每秒數千條消息的消息吞吐量。低延遲:Kafka能夠輕鬆處理這些消息,具備毫秒級的極低延遲,這是大多數新用例所要求的。容錯:Kafka可以抵抗集羣中的節點/機器故障。耐久性:因爲Kafka支持消息複製,所以消息永遠不會丟失。這是耐久性背後的緣由之一。可擴展性:卡夫卡能夠擴展,而不須要經過添加額外的節點而在運行中形成任何停機。
問題9:Kafka的主要API有哪些?
答:Apache Kafka有4個主要API:
生產者API 消費者API 流 API 鏈接器API
問題10:什麼是消費者或用戶?
答:Kafka消費者訂閱一個主題,並讀取和處理來自該主題的消息。此外,有了消費者組的名字,消費者就給本身貼上了標籤。換句話說,在每一個訂閱使用者組中,發佈到主題的每一個記錄都傳遞到一個使用者實例。確保使用者實例可能位於單獨的進程或單獨的計算機上。Apache Kafka對於新手的面試問題:1,2,4,7,8,9,10Apache Kafka對於有經驗的人的面試問題:3,5,6
問題11:解釋領導者和追隨者的概念。
答:在Kafka的每一個分區中,都有一個服務器充當領導者,0到多個服務器充當追隨者的角色。
問題12:是什麼確保了Kafka中服務器的負載平衡?
答:因爲領導者的主要角色是執行分區的全部讀寫請求的任務,而追隨者被動地複製領導者。所以,在領導者失敗時,其中一個追隨者接管了領導者的角色。基本上,整個過程可確保服務器的負載平衡。
問題13:副本和ISR扮演什麼角色?
答:基本上,複製日誌的節點列表就是副本。特別是對於特定的分區。可是,不管他們是否扮演領導者的角色,他們都是如此。此外,ISR指的是同步副本。在定義ISR時,它是一組與領導者同步的消息副本。
問題14:爲何Kafka的複製相當重要?
答:因爲複製,咱們能夠確保發佈的消息不會丟失,而且能夠在發生任何機器錯誤、程序錯誤或頻繁的軟件升級時使用。
問題15:若是副本長時間不在ISR中,這意味着什麼?
答:簡單地說,這意味着跟隨者不能像領導者收集數據那樣快速地獲取數據。
問題16:啓動Kafka服務器的過程是什麼?
答:初始化ZooKeeper服務器是很是重要的一步,由於Kafka使用ZooKeeper,因此啓動Kafka服務器的過程是:要啓動ZooKeeper服務器:>bin/zooKeeper-server-start.sh config/zooKeeper.properties接下來,啓動Kafka服務器:>bin/kafka-server-start.sh config/server.properties
問題17:在生產者中,什麼時候發生QueueFullException?
答:每當Kafka生產者試圖以代理的身份在當時沒法處理的速度發送消息時,一般都會發生QueueFullException。可是,爲了協做處理增長的負載,用戶須要添加足夠的代理,由於生產者不會阻止。
問題18:解釋Kafka Producer API的做用。
答:容許應用程序將記錄流發佈到一個或多個Kafka主題的API就是咱們所說的Producer API。
問題19:Kafka和Flume之間的主要區別是什麼?
答:Kafka和Flume之間的主要區別是:工具類型 Apache Kafka——Kafka是面向多個生產商和消費者的通用工具。 Apache Flume——Flume被認爲是特定應用程序的專用工具。複製功能Apache Kafka——Kafka能夠複製事件。Apache Flume——Flume不復制事件。
問題20:Apache Kafka是分佈式流處理平臺嗎?若是是,你能用它作什麼?
答:毫無疑問,Kafka是一個流處理平臺。它能夠幫助:1.輕鬆推送記錄2.能夠存儲大量記錄,而不會出現任何存儲問題3.它還能夠在記錄進入時對其進行處理。Apache Kafka對於新手的面試問題:11,13,14,16,17,18,19Apache Kafka對於有經驗的人的面試問題:12,15,20
問題21:你能用Kafka作什麼?
答:它能夠以多種方式執行,例如:>>爲了在兩個系統之間傳輸數據,咱們能夠用它構建實時的數據流管道。>>另外,咱們能夠用Kafka構建一個實時流處理平臺,它能夠對數據快速作出反應。
問題22:在Kafka集羣中保留期的目的是什麼?
答:保留期限保留了Kafka羣集中的全部已發佈記錄。它不會檢查它們是否已被消耗。此外,能夠經過使用保留期的配置設置來丟棄記錄。並且,它能夠釋放一些空間。
問題23:解釋Kafka能夠接收的消息最大爲多少?
答:Kafka能夠接收的最大消息大小約爲1000000字節。
問題24:傳統的消息傳遞方法有哪些類型?
答:基本上,傳統的消息傳遞方法有兩種,如:排隊:這是一種消費者池能夠從服務器讀取消息而且每條消息轉到其中一個消息的方法。發佈-訂閱:在發佈-訂閱中,消息被廣播給全部消費者。
問題25:ISR在Kafka環境中表明什麼?
答:ISR指的是同步副本。這些一般被分類爲一組消息副本,它們被同步爲領導者。
問題26:什麼是Kafka中的地域複製?
答:對於咱們的集羣,Kafka MirrorMaker提供地理複製。基本上,消息是經過MirrorMaker跨多個數據中心或雲區域複製的。所以,它能夠在主動/被動場景中用於備份和恢復;也能夠將數據放在離用戶更近的位置,或者支持數據位置要求。
問題27:解釋多租戶是什麼?
答:咱們能夠輕鬆地將Kafka部署爲多租戶解決方案。可是,經過配置主題能夠生成或使用數據,能夠啓用多租戶。此外,它還爲配額提供操做支持。
問題28:消費者API的做用是什麼?
答:容許應用程序訂閱一個或多個主題並處理生成給它們的記錄流的API,咱們稱之爲消費者API。
問題29:解釋流API的做用?
答:一種容許應用程序充當流處理器的API,它還使用一個或多個主題的輸入流,並生成一個輸出流到一個或多個輸出主題,此外,有效地將輸入流轉換爲輸出流,咱們稱之爲流API。
問題30:鏈接器API的做用是什麼?
答:一個容許運行和構建可重用的生產者或消費者的API,將Kafka主題鏈接到現有的應用程序或數據系統,咱們稱之爲鏈接器API。Apache Kafka對於新手的面試問題:21, 23, 25, 26, 27, 28, 29, 30Apache Kafka對於有經驗的人的面試問題:24, 22
問題31:解釋生產者是什麼?
答:生產者的主要做用是將數據發佈到他們選擇的主題上。基本上,它的職責是選擇要分配給主題內分區的記錄。
問題32:比較RabbitMQ與Apache Kafka
答:Apache Kafka的另外一個選擇是RabbitMQ。那麼,讓咱們比較二者:功能Apache Kafka– Kafka是分佈式的、持久的和高度可用的,這裏共享和複製數據RabbitMQ中沒有此類功能性能速度Apache Kafka–達到每秒100000條消息。RabbitMQ–每秒20000條消息。
問題33:比較傳統隊列系統與Apache Kafka
答:讓咱們比較一下傳統隊列系統與Apache Kafka的功能:消息保留 傳統的隊列系統 - 它一般從隊列末尾處理完成後刪除消息。 Apache Kafka中,消息即便在處理後仍然存在。這意味着Kafka中的消息不會因消費者收到消息而被刪除。基於邏輯的處理傳統隊列系統不容許基於相似消息或事件處理邏輯。Apache Kafka容許基於相似消息或事件處理邏輯。
問題34:爲何要使用Apache Kafka集羣?
答:爲了克服收集大量數據和分析收集數據的挑戰,咱們須要一個消息隊列系統。所以Apache Kafka應運而生。其好處是:只需存儲/發送事件以進行實時處理,就能夠跟蹤Web活動。經過這一點,咱們能夠發出警報並報告操做指標。此外,咱們能夠將數據轉換爲標準格式。此外,它容許對主題的流數據進行連續處理。因爲它的普遍使用,它秒殺了競品,如ActiveMQ,RabbitMQ等。
問題35:解釋術語「Log Anatomy」
答:咱們將日誌視爲分區。基本上,數據源將消息寫入日誌。其優勢之一是,在任什麼時候候,都有一個或多個消費者從他們選擇的日誌中讀取數據。下面的圖表顯示,數據源正在寫入一個日誌,而用戶正在以不一樣的偏移量讀取該日誌。
問題36:Kafka中的數據日誌是什麼?
答:咱們知道,在Kafka中,消息會保留至關長的時間。此外,消費者還能夠根據本身的方便進行閱讀。儘管如此,有一種可能的狀況是,若是將Kafka配置爲將消息保留24小時,而且消費者可能停機超過24小時,則消費者可能會丟失這些消息。可是,咱們仍然能夠從上次已知的偏移中讀取這些消息,但僅限於消費者的部分停機時間僅爲60分鐘的狀況。此外,關於消費者從一個話題中讀到什麼,Kafka不會保持狀態。
問題37:解釋如何調整Kafka以得到最佳性能。
答:所以,調優Apache Kafka的方法是調優它的幾個組件:1.調整Kafka生產者2.Kafka代理調優3.調整Kafka消費者
問題38:Apache Kafka的缺陷
答:Kafka的侷限性是:1.沒有完整的監控工具集2.消息調整的問題3.不支持通配符主題選擇4.速度問題
問題39:列出全部Apache Kafka業務
答:Apache Kafka的業務包括:添加和刪除Kafka主題如何修改Kafka主題如何關機在Kafka集羣之間鏡像數據找到消費者的位置擴展您的Kafka羣集自動遷移數據退出服務器數據中心
問題40:解釋Apache Kafka用例?
答:Apache Kafka有不少用例,例如:
Kafka指標可使用Kafka進行操做監測數據。此外,爲了生成操做數據的集中提要,它涉及到從分佈式應用程序聚合統計信息。Kafka日誌聚合 從組織中的多個服務收集日誌。流處理在流處理過程當中,Kafka的強耐久性很是有用。Apache Kafka對於新手的面試問題:31, 32, 33, 34, 38, 39, 40Apache Kafka對於有經驗的人的面試問題:35, 36, 37
問題41:Kafka的一些最顯著的應用。
答:Netflix,Mozilla,Oracle
問題42:Kafka流的特色。
答:Kafka流的一些最佳功能是Kafka Streams具備高度可擴展性和容錯性。Kafka部署到容器,VM,裸機,雲。咱們能夠說,Kafka流對於小型,中型和大型用例一樣可行。此外,它徹底與Kafka安全集成。編寫標準Java應用程序。徹底一次處理語義。並且,不須要單獨的處理集羣。
問題43:Kafka的流處理是什麼意思?
答:連續、實時、併發和以逐記錄方式處理數據的類型,咱們稱之爲Kafka流處理。
問題44:系統工具備哪些類型?
答:系統工具備三種類型:1.Kafka遷移工具:它有助於將代理從一個版本遷移到另外一個版本。2.Mirror Maker:Mirror Maker工具備助於將一個Kafka集羣的鏡像提供給另外一個。3.消費者檢查:對於指定的主題集和消費者組,它顯示主題,分區,全部者。
問題45:什麼是複製工具及其類型?
答:爲了加強持久性和更高的可用性,這裏提供了複製工具。其類型爲建立主題工具列表主題工具添加分區工具
問題46:Java在Apache Kafka中的重要性是什麼?
答:爲了知足Kafka標準的高處理速率需求,咱們可使用java語言。此外,對於Kafka的消費者客戶,Java也提供了良好的社區支持。因此,咱們能夠說在Java中實現Kafka是一個正確的選擇。
問題47:說明Kafka的一個最佳特徵。
答:Kafka的最佳特性是「各類各樣的用例」。這意味着Kafka可以管理各類各樣的用例,這些用例對於數據湖來講很是常見。例如日誌聚合、Web活動跟蹤等。
問題48:解釋術語「主題複製因子」。
答:在設計Kafka系統時,考慮主題複製是很是重要的。
問題49:解釋一些Kafka流實時用例。
答:《紐約時報》:該公司使用它來實時存儲和分發已發佈的內容到各類應用程序和系統,使其可供讀者使用。基本上,它使用Apache Kafka和Kafka流。Zalando:做爲ESB(企業服務總線)做爲歐洲領先的在線時尚零售商,Zalando使用Kafka。LINE:基本上,爲了相互通訊,LINE應用程序使用Apache Kafka做爲其服務的中心數據中心。
問題50:Kafka提供的保證是什麼?
答:他們是生產者向特定主題分區發送的消息的順序相同。此外,消費者實例按照它們存儲在日誌中的順序查看記錄。此外,即便不丟失任何提交給日誌的記錄,咱們也能夠容忍最多N-1個服務器故障。Apache Kafka對於新手的面試問題:41, 42, 43, 44, 45, 47, 49Apache Kafka對於有經驗的人的面試問題:46, 48
這即是關於Apache Kafka面試的問題和答案。