scala語言寫的開源消息中間件:Kestrel

jopen 10年前發布 | 16K 次閱讀 Kestrel 消息系統

Kestrel推ter的開發團隊用scala語言寫的開源消息中間件。 

其具備了以下特點:

  快速:Kestrel運行在JVM上,用戶可以視為java的項目來使用高級的優化手段。

  小巧:Kestrel大約2500scala代碼

  持久性:為了獲取不錯的性能表現,隊列是存儲在內存中。但是同時在硬盤上保留了日志,因此服務器 關閉可以保證不丟失數據。

  可靠性:客戶端可以嘗試獲取隊列中的數據項,如果客戶端在沒有確認獲取數據項之前斷開鏈接,數據 項還可以被其他客戶端獲取,就是說客戶端崩潰不會導致數據項的丟失。

除此之外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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!