>1.Kafka面試問答
Apache Kafka的受歡迎程度很高,Kafka擁有充足的就業機會和職業前景。此外,在這個時代擁有kafka知識是一條快速增長的道路。是以,在這篇文章中,我們收集了Apache Kafka面試中常見的問題,并提供了答案。是以,如果您希望參加Apache Kafka面試,這是一份不錯的指南。這将有助于您成功參加Kafka面試。
>>>>
2.最佳Apache Kafka面試問題和解答
這是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,10
Apache Kafka對于有經驗的人的面試問題:3,5,6
3.比較棘手的Kafka面試問題和答案
問題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,19
Apache Kafka對于有經驗的人的面試問題:12,15,20
4.進階Kafka面試問題
問題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, 30
Apache 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的方法是調優它的幾個元件:
- 調整Kafka生産者
- Kafka代理調優
- 調整Kafka消費者
問題38:Apache Kafka的缺陷
答:Kafka的局限性是:
- 沒有完整的監控工具集
- 消息調整的問題
- 不支援通配符主題選擇
- 速度問題
問題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, 40
Apache Kafka對于有經驗的人的面試問題:35, 36, 37
5.基于特征的Kafka面試問題
問題41:Kafka的一些最顯著的應用。
答:Netflix,Mozilla,Oracle
問題42:Kafka流的特點。
答:Kafka流的一些最佳功能是
- Kafka Streams具有高度可擴充性和容錯性。
- Kafka部署到容器,VM,裸機,雲。
- 我們可以說,Kafka流對于小型,中型和大型用例同樣可行。
- 此外,它完全與Kafka安全內建。
- 編寫标準Java應用程式。
- 完全一次處理語義。
- 而且,不需要單獨的處理叢集。
問題43:Kafka的流處理是什麼意思?
答:連續、實時、并發和以逐記錄方式處理資料的類型,我們稱之為Kafka流處理。
問題44:系統工具有哪些類型?
答:系統工具有三種類型:
- Kafka遷移工具:它有助于将代理從一個版本遷移到另一個版本。
- Mirror Maker:Mirror Maker工具有助于将一個Kafka叢集的鏡像提供給另一個。
- 消費者檢查:對于指定的主題集和消費者組,它顯示主題,分區,所有者。
問題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, 49
Apache Kafka對于有經驗的人的面試問題:46, 48
最後,這便是關于Apache Kafka面試的問題和答案。
希望你們看了我的文章能夠有所收獲。