1 回答

TA貢獻1866條經(jīng)驗 獲得超5個贊
(Kafka是一個高吞吐量分布式消息系統(tǒng)。linkedin開源的kafka。 Kafka就跟這個名字一樣,設計非常獨特。首先,kafka的開發(fā)者們認為不需要在內(nèi)存里緩存什么數(shù)據(jù),操作系統(tǒng)的文件緩存已經(jīng)足夠完善和強大,只要你不搞隨機寫,順序讀寫的性能是非常高效的。kafka的數(shù)據(jù)只會順序append,數(shù)據(jù)的刪除策略是累積到一定程度或者超過一定時間再刪除。Kafka另一個獨特的地方是將消費者信息保存在客戶端而不是MQ服務器,這樣服務器就不用記錄消息的投遞過程,每個客戶端都自己知道自己下一次應該從什么地方什么位置讀取消息,消息的投遞過程也是采用客戶端主動pull的模型,這樣大大減輕了服務器的負擔。Kafka還強調(diào)減少數(shù)據(jù)的序列化和拷貝開銷,它會將一些消息組織成Message Set做批量存儲和發(fā)送,并且客戶端在pull數(shù)據(jù)的時候,盡量以zero-copy的方式傳輸,利用sendfile(對應java里的 FileChannel.transferTo/transferFrom)這樣的高級IO函數(shù)來減少拷貝開銷??梢姡琸afka是一個精心設計,特定于某些應用的MQ系統(tǒng),這種偏向特定領(lǐng)域的MQ系統(tǒng)我估計會越來越多,垂直化的產(chǎn)品策略值的考慮)
- 1 回答
- 0 關(guān)注
- 832 瀏覽
添加回答
舉報