有pub/sub功能,同步和異步都支持,producer.type項設置linux
單條消息的上限用max.message.size項設置安全
消息可能有丟失,在consumer宕機後消息可能有重複投遞網絡
同一個partition內保證消息順序,多個partition不保證負載均衡
支持異步發送消息,可配置producer使得在必定時間後發送消息,或是消息累積到必定量後再發送異步
支持Scala、Java、C++、C#、Go、PHP、Python、Ruby,PHP須要5.3.3版本以上oop
PHP版本的client功能還不夠豐富設計
支持持久化,消息存儲在磁盤上,複雜度爲O(1)隊列
沒有消費反饋,哪些消息已消費由consumer維護(經過記錄一個offset值),consumer也能夠回滾到之前的位置,從新讀取以前讀取過的消息進程
異步方式可支持消息的延時投遞,queue.time項設置ip
單個隊列可以承受的消息容量的極限由queue.size項設置
沒有固定的協議
消息的狀態由客戶端維護,服務端不參與,服務端會在消息保存必定時間(默認爲7天)後將其刪除
每一個consumer進程屬於一個consumer group,一個message只被發給同一個consumer group中的一個consumer進程,所以能夠支持queue和topic兩種語義
producer發送消息後,broker不會發送ACK給producer
consumer與broker間有負載均衡
在linux系統上使用sendfile系統調用,經過zero-copy技術達到很高的效率
部署難度通常,配置管理還算方便
最新版支持副本機制,解決了單點故障問題
最新版支持鏡像功能,可支持消息遷移,但還不太成熟,限制較多,如只能使用默認的patitioner等
水平擴展方便,對業務無影響,Zookeeper管理consumer和broker的加入和退出
也能夠不依賴Zookeeper,那麼事先須要在配置文件中指定機器信息,集羣是靜態的,不能變更
消息支持壓縮,節省網絡開銷,目前只支持gzip格式
有安全機制和監控機制
數據可批量導入hadoop,作離線數據分析
設計指導思想是注重吞吐率更勝於注重功能特性
將來會支持流式處理
Scala語言實現,代碼行數不到6K,語言不熟悉但代碼量不大
開發較活躍,用戶量較多,目前還在增加中