1. 程式人生 > >Hbase總結之hbase37個筆試題

Hbase總結之hbase37個筆試題

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系統我估計會越來越多,垂直化的產品策略值的考慮