kafka吞吐量大,延遲低,高可用,都是怎麼實現的?廢話不多說,往下看
應該先講低延遲,如果延遲高的話吞吐量是上不去的。低延遲的實現簡單概括為以下幾點:
順序寫:這個順序寫的客觀條件就是hadoop生態圈的核心就是廉價機器組成巨大規模的集群,所以基本都是機械硬碟,順序寫的速度能達到600m/s,隨即寫只有大概100kb/s,差距如此巨大的根本原因就是順序寫省去了磁碟磁頭定址的時間,隨機寫的大量時間都消耗在了定址時間,所以慢
二分查詢(絕對重點):
通常來說,乙個頁上儲存了成百上千的索引項資料。隨著索引檔案不斷被寫入,page #12 不斷地被填充新的索引項。如果此時索引查詢方都來自 isr 副本或 lag 很小的消費者,那麼這些查詢大多集中在對 page #12 的查詢,因此,page #0、6、9、11、12 一定經常性地被原始碼訪問。也就是說,這些頁一定儲存在頁快取上。後面當新的索引項填滿了 page #12,頁快取就會申請乙個新的 page 來儲存索引項,即 page #13。現在,最新索引項儲存在 page #13 中。如果要查詢最新索引項,原版二分查詢演算法將會依次訪問 page #0、7、10、12 和 13。此時,問題來了:page 7 和 10 已經很久沒有被訪問過了,它們大概率不在頁快取中,因此,一旦索引開始徵用 page #13,就會發生 page fault,等待那些冷頁資料從磁碟中載入到頁快取。根據國外使用者的測試,這種載入過程可能長達 1 秒。
2,高可用
乙個名為test的topic,在4節點的集群上面有3個分割槽,每個分割槽2副本,下面如圖所示:
kafka高階知識點面試題
在老版本kafka中,訊息都是來一條傳送一條,這種方式會造成訊息傳送的吞吐量比較低,所以之後kafka對這種方式進行了優化,提供了批量傳送的方式,把多條訊息繫結成一批訊息傳送,以此來提高訊息傳送的吞吐率。這種方式就是緩衝池的思想,傳送訊息的邏輯大概如下 1 把訊息封裝成producerrecord物...
Kafka入門和高階
kafka 是乙個分布式的基於 發布 訂閱模式 的流式平台,主要應用於大資料實時處理領域。它有三個關鍵能力 1.訂閱發布記錄流,它類似於企業中的訊息佇列 或 企業訊息傳遞系統 2.以容錯的方式儲存記錄流 3.實時記錄流 kafka 的應用 kafka 可以建立流資料管道,可靠性的在系統或應用之間獲取...
kafka知識總結
1 kafka是什麼 類jms訊息佇列,結合jms中的兩種模式,可以有多個消費者主動拉取資料,在jms中只有點對點模式才有消費者主動拉取資料。kafka是乙個生產 消費模型。producer 生產者,只負責資料生產,生產者的 可以整合到任務系統中。資料的分發策略由producer決定,預設是defa...