scala語言寫的開源消息中間件:Kestrel
Kestrel是推ter的開發團隊用scala語言寫的開源消息中間件。
其具備了以下特點:
快速:Kestrel運行在JVM上,用戶可以視為java的項目來使用高級的優化手段。
小巧:Kestrel大約2500行scala代碼
持久性:為了獲取不錯的性能表現,隊列是存儲在內存中。但是同時在硬盤上保留了日志,因此服務器 關閉可以保證不丟失數據。
可靠性:客戶端可以嘗試獲取隊列中的數據項,如果客戶端在沒有確認獲取數據項之前斷開鏈接,數據 項還可以被其他客戶端獲取,就是說客戶端崩潰不會導致數據項的丟失。
除此之外kestrel還具備了很多讓人眼前一亮的特性:
支持多請求協議:目前支持三種協議,
memcache協議(并沒有完整的實現memcache協議,只支持部分操作協議),
協議的說明 https://github.com/memcached/memcached/blob/master/doc/protocol.txt
text協議,
thrift協議
FanoutQueues(隊列分發):根據隊列的命名規則完成數據項的自動復制分發,可以發送端只發送一次,多個接受端可以相互之間不受影響的獨立接收數據。
集群支持:kestrel集群類似于memcache集群,集群中的服務器互相并不知道對方的存在。請求的分發主要由客戶端來完成,kestrel本身也可以通過設置來結合zookeeper來管理其集群資源。
靈活的配置:kestrel具備很多可調節的配置項,比如可以選擇是否持久化或者數據項過期時長,結合jvm本身的配置,可提供給使用者更多的優化空間。
官方網址:http://推ter.github.io/kestrel/
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!