Kafka是一個高吞吐量分布式消息系統。linkedin開源的kafka。 Kafka就跟這個名字一樣,設計非常獨特。首先,kafka的開發者們認為不需要在內存里緩存什么數據,操作系統的文件緩存已經足夠完善和強大,只要你不搞隨機寫,順序讀寫的性能是非常高效的。kafka的數據只會順序append,數據的刪除策略是累積到一定程度或者超過一定時間再刪除。Kafka另一個獨特的地方是將消費者信息保存在客戶端而不是MQ服務器,這樣服務器就不用記錄消息的投遞過程,每個客戶端都自己知道自己下一次應該從什么地方什么位置讀取消息,消息的投遞過程也是采用客戶端主動pull的模型,這樣大大減輕了服務器的負擔。Kafka還強調減少數據的序列化和拷貝開銷,它會將一些消息組織成Message Set做批量存儲和發送,并且客戶端在pull數據的時候,盡量以zero-copy的方式傳輸,利用sendfile(對應java里的 FileChannel.transferTo/transferFrom)這樣的高級IO函數來減少拷貝開銷。可見,kafka是一個精心設計,特定于某些應用的MQ系統,這種偏向特定領域的MQ系統我估計會越來越多,垂直化的產品策略值的考慮。
<DIV class=date>收錄時間:2011-05-04 14:48:41</DIV>
本文由用戶 碼頭工人自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!