想進大廠必須掌握的15道Kafka面試,看完我一滴都不剩了

1.什麼是Kafka?

Wikipedia將Kafka定義爲“由 Scala編寫的Apache軟件基金會開發的開源消息代理項目 ,並且是一個分佈式的發佈-訂閱消息系統。

特徵 描述
高吞吐量 使用適度的硬件支持數百萬條消息
可擴展性 高度可擴展的分佈式系統,無停機
複寫 消息在整個羣集中複製,以爲多個訂戶提供支持,並在發生故障時平衡使用方
持久性 提供對消息到磁盤的持久性的支持
流處理 與Apache Spark&Storm等實時流應用程序一起使用
數據丟失 具有正確配置的Kafka可以確保零數據丟失

2.列出Kafka中的各個組件。

Kafka的四個主要組成部分是:

  • 主題–屬於同一類型的消息流
  • 生產者–可以將消息發佈到主題
  • 代理–一組用於存儲發佈消息的服務器
  • 消費者–訂閱各種主題並從經紀人處提取數據。

3.解釋偏移量的作用。

分區中包含的消息被分配一個唯一的ID號,稱爲偏移號。偏移量的作用是唯一標識分區中的每個消息。

4.什麼是消費羣體?

消費者羣體是Kafka獨有的概念。每個Kafka消費者羣體都由一個或多個共同組成一組訂閱主題的消費者組成。

5. ZooKeeper的作用是什麼?

Kafka使用Zookeeper來存儲特定使用者組針對特定主題和分區使用的消息的偏移量。

6.是否可以在沒有ZooKeeper的情況下使用Kafka?

不可以,不能繞過Zookeeper並直接連接到Kafka服務器。如果由於某種原因ZooKeeper關閉,您將無法處理任何客戶端請求。

7.領導者和跟隨者是什麼意思。

Kafka中的每個分區都有一個充當領導者角色的服務器,沒有一個或多個充當追隨者的服務器。領導者執行對分區的所有讀寫請求的任務,而跟隨者的作用是被動複製領導者。如果領導者失敗,一名跟隨者將擔任領導者的角色。這樣可以確保服務器的負載平衡。

8.副本服務器和ISR扮演什麼角色?

副本實際上是一個節點列表,這些節點將複製特定分區的日誌,而不管它們是否扮演領導者的角色。另一方面,ISR代表同步副本。它實質上是一組同步到領導者的消息副本。

9.爲什麼複製在Kafka中至關重要?

複製可確保發佈的消息不會丟失,並且在發生任何機器錯誤,程序錯誤或頻繁的軟件升級時都可以使用。

10.如果副本長時間不在ISR中,則表示什麼?

這意味着跟隨者無法獲取與領導者積累的數據一樣快的數據。

11.啓動Kafka服務器的過程是什麼?

由於Kafka使用ZooKeeper,因此必須初始化ZooKeeper服務器,然後啓動Kafka服務器。

  • 要啓動ZooKeeper服務器:> bin / zookeeper-server-start.sh config / zookeeper.properties
  • 接下來,啓動Kafka服務器:> bin / Kafka-server-start.sh config / server.properties

12.如何定義分區鍵?

在生產者中,分區鍵的作用是指示消息的目標分區。默認情況下,基於散列的分區程序用於確定給定鍵的分區ID。或者,用戶也可以使用自定義分區。

13.在生產者中,什麼時候發生QueueFullException?

當生產者嘗試以代理無法處理的速度發送消息時,通常會發生QueueFullException。由於生產者沒有阻止,用戶將需要添加足夠的代理來協作處理增加的負載。

14.解釋Kafka Producer API的角色。

Kafka的Producer API的作用是包裝兩個生產者– Kafka.producer.SyncProducer和Kafka.producer.async.AsyncProducer。目標是通過單個API向客戶端公開所有生產者功能。

15. Kafka和Flume之間的主要區別是什麼?

即使兩者都用於實時處理,Kafka仍可擴展並確保消息的持久性。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章