Redis作者新開發的消息隊列:Disque

y37f 9年前發布 | 27K 次閱讀 Disque 消息系統

Disque是一個分布式的消息隊列。與Redis有單結點和分布式模式不同,單一Disque結點也是只有一個結點的集群。它是一個AP系統,也就是具有Availability(可用性)和Partition tolerance(分區容錯性)。另外它能在各種情形下保持高擴展性:無論是多生產者和多消費者處理多隊列,還是所有生產者和消費者都在一個隊列。

另外,Disque的設計中有一點重大犧牲,就是只盡力提供而不保證消息的排序。

Disque的特性:

  • 消息發送可以選擇至少一次或者最多一次。
  • 消息需要消費者確認。
  • 如果沒有確認,會一直重發,直至到期。確認信息會廣播給擁有消息副本的所有結點,然后消息會被垃圾收集或者刪除。
  • 隊列是持久的。
  • Disque默認只運行在內存里,持久性是通過同步備份實現的。
  • 隊列為了保證最大吞吐量,不是全局一致的,但會盡力提供排序。
  • 在壓力大的時候,消息不會丟棄,但會拒絕新的消息。
  • 消費者和生產者可以通過命令查看隊列中的消息。
  • 隊列盡力提供FIFO。
  • 一組master作為中介,客戶端可以與任一結點通信。
  • 中介有命名的隊列,無需消費者和生產者干預。
  • 消息發送是事務性的,保證集群中會有所需數量的副本。
  • 消息接收不是事務性的。
  • 消費者默認是接收時是阻塞的,但也可以選擇查看新消息。
  • 生產者在隊列滿時發新消息可以得到錯誤信息,也可以讓集群異步地復制消息。
  • 支持延遲作業,粒度是秒,最久可以長達數年。但需要消耗內存。
  • 消費者和生產者可以連接不同的結點。

詳細內容:http://antirez.com/news/88

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