為什麼 Kafka 這麼快?

以前的工作用過 Kafka, 所以知道它很快,但是沒想過為什麼它可以這麼快,直到面試時被問了才知道只會使用是不夠的,必須了解應用的特性或原理,才能夠設計出正確系統架構。

Kafka 快的主因有二:

  1. 使用 Sequential append 的方式寫資料。這種方式寫的速度比起 random access 會快上許多,所以很多收集日誌(log)的系統多半也都會採用 sequential append 方式寫入資料。
  2. 採用 Zero copy 技術。在未採用 zero copy 技術時, Kafka 需要將資料複製到 Socket buffer 再複製到 NIC buffer(網路介面的 buffer),最後再傳送出去,採用 zero copy 之後, Kafka 就有能力直接跳過 Socket buffer 直接複製到 NIC buffer 這段, 如此一來節省了一次不必要的複製,從而提升其效能。

p.s. 不是節省 Socket buffer 複製到 NIC buffer 這段的技術就稱為 zero copy, 任何可以節省從記憶體複製資料到其他不必要的地方的技術,都可以稱為 zero copy

以下 5 分鐘的影片以圖解說明 Kafka 快的原因,相當值得花點時間學習:

https://www.youtube.com/watch?v=UNUz1-msbOM

Facebook Threads X

對抗久坐職業傷害

研究指出每天增加 2 小時坐著的時間,會增加大腸癌、心臟疾病、肺癌的風險,也造成肩頸、腰背疼痛等常見問題。

然而對抗這些問題,卻只需要工作時定期休息跟伸展身體即可!

你想輕鬆改變現狀嗎?試試看我們的 PomodoRoll 番茄鐘吧! PomodoRoll 番茄鐘會根據你所設定的專注時間,定期建議你 1 項辦公族適用的伸展運動,幫助你打敗久坐所帶來的傷害!

贊助我們的創作

看完這篇文章了嗎? 休息一下,喝杯咖啡吧!

如果你覺得 MyApollo 有讓你獲得實用的資訊,希望能看到更多的技術分享,邀請你贊助我們一杯咖啡,讓我們有更多的動力與精力繼續提供高品質的文章,感謝你的支持!