日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

kafka是存储到本地磁盘么_【漫画】Kafka是如何实现高性能的?

發布時間:2024/10/12 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kafka是存储到本地磁盘么_【漫画】Kafka是如何实现高性能的? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

宏觀架構層面利用Partition實現并行處理

Kafka中每個Topic都包含一個或多個Partition,不同Partition可位于不同節點。

同時Partition在物理上對應一個本地文件夾,每個Partition包含一個或多個Segment,每個Segment包含一個數據文件和一個與之對應的索引文件。

一方面,由于不同Partition可位于不同機器,因此可以充分利用集群優勢,實現機器間的并行處理。

另一方面,由于Partition在物理上對應一個文件夾,即使多個Partition位于同一個節點,也可通過配置讓同一節點上的不同Partition置于不同的磁盤上,從而實現磁盤間的并行處理,充分發揮多磁盤的優勢。

具體實現層面高效使用磁盤特性和操作系統特性

將寫磁盤的過程變為順序寫

Kafka的整個設計中,Partition相當于一個非常長的數組,而Broker接收到的所有消息順序寫入這個大數組中。同時Consumer通過Offset順序消費這些數據,并且不刪除已經消費的數據,從而避免了隨機寫磁盤的過程。

而這個刪除過程,并非通過使用“讀-寫”模式去修改文件,而是將Partition分為多個Segment,每個Segment對應一個物理文件,通過刪除整個文件的方式去刪除Partition內的數據。這種方式清除舊數據的方式,也避免了對文件的隨機寫操作。

在存儲機制上,使用了Log Structured Merge Trees(LSM) 。

注:Log Structured Merge Trees(LSM),谷歌 “BigTable” 的論文,中提出,LSM是當前被用在許多產品的文件結構策略:HBase, Cassandra, LevelDB, SQLite,Kafka。LSM被設計來提供比傳統的B+樹或者ISAM更好的寫操作吞吐量,通過消去隨機的本地更新操作來達到這個目標。這個問題的本質還是磁盤隨機操作慢,順序讀寫快。這二種操作存在巨大的差距,無論是磁盤還是SSD,而且快至少三個數量級。

充分利用Page Cache

Page Cache,其中文名稱為頁高速緩沖存儲器,簡稱頁高緩。page cache的大小為一頁,通常為4K。在Linux讀寫文件時,它用于緩存文件的邏輯內容,從而加快對磁盤上映像和數據的訪問。是Linux操作系統的一個特色。

  • I/O Scheduler會將連續的小塊寫組裝成大塊的物理寫從而提高性能
  • I/O Scheduler會嘗試將一些寫操作重新按順序排好,從而減少磁盤頭的移動時間
  • 讀操作可直接在Page Cache內進行。如果消費和生產速度相當,甚至不需要通過物理磁盤(直接通過Page Cache)交換數據

Kafka收到數據后,寫磁盤時只是將數據寫入Page Cache,并不保證數據一定完全寫入磁盤。

如果數據消費速度與生產速度相當,甚至不需要通過物理磁盤交換數據,而是直接通過Page Cache交換數據。同時,Follower從Leader Fetch數據時,也可通過Page Cache完成。

零拷貝

Kafka中存在大量的網絡數據持久化到磁盤(Producer到Broker)和磁盤文件通過網絡發送(Broker到Consumer)的過程。這一過程的性能直接影響Kafka的整體吞吐量。

而Linux 2.4+內核通過sendfile系統調用,提供了零拷貝。數據通過DMA拷貝到內核態Buffer后,直接通過DMA拷貝到NIC Buffer,無需CPU拷貝。這也是零拷貝這一說法的來源。除了減少數據拷貝外,因為整個讀文件-網絡發送由一個sendfile調用完成,整個過程只有兩次上下文切換,因此大大提高了性能。

總結

以上是生活随笔為你收集整理的kafka是存储到本地磁盘么_【漫画】Kafka是如何实现高性能的?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。