-
Kafka天生的分布式架構
-
順序寫:Kafka使用了磁盤順序寫來提升的性能,Kafka的message是不斷追加到本地磁盤檔案末尾的,而不是隨機的寫入,減少了磁盤尋址的開銷
-
Kafka利用了作業系統自身的記憶體,Kafka的讀寫操作基本上是基于記憶體的,讀寫速度得到了極大的提升,而不是JVM空間記憶體,避免GC問題,Java物件的記憶體消耗比較大
-
通過 “零拷貝”的機制,Kafka消費端的性能也大幅提升,零拷貝技術,不需要切換到用戶態,在內核態即可完成讀寫操作,零拷貝避免了在內核空間和用戶空間之間的拷貝,sendfile方法允許作業系統將資料從Page Cache 直接發送到網路,只需要最后一步的copy操作將資料復制到 NIC 緩沖區
-
磁區分段+索引:Kafka的message是按topic分類存盤的,topic中的資料按照一個個的partition存盤到不同broker節點,每個磁區有分多個segment,Kafka默認為分段后的資料檔案建立索引檔案,這種磁區分段+索引的設計,提高了資料讀取的效率,及資料操作的并行度,
-
對訊息批量壓縮,減少網路IO損耗
-
Kafka資料讀寫是批量的
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/423274.html
標籤:其他
