消息隊列 零拷貝

Kafka總結

總的來說Kafka快的原因:
1、partition順序讀寫,充分利用磁盤特性,這是基礎;
2、Producer生產的數據持久化到broker,採用mmap文件映射,實現順序的快速寫入;
3、consumer從broker讀取數據,採用sendfile,將磁盤文件讀到OS內核緩衝區後,直接轉到socket buffer進行網絡發送。

mmap 和 sendfile總結

1、都是Linux內核提供、實現零拷貝的API;
2、sendfile 是將讀到內核空間的數據,轉到socket buffer,進行網絡發送;
3、mmap將磁盤文件映射到內存,支持讀和寫,對內存的操作會反映在磁盤文件上。
RocketMQ 在消費消息時,使用了 mmap。kafka 使用了 sendFile。

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