Bunny 是個注重易用性的 RabbitMQ 用戶端。它功能齊全,支援所有最新的 RabbitMQ 功能,並且沒有任何重量級依賴項。
就在這裡!
可以使用 Bunny 使 Ruby 應用程式與其他應用程式(無論是用 Ruby 建構的還是非 Ruby 建構的)進行互通。從簡單的工作佇列到複雜的多階段資料處理工作流程,複雜性和大小可能各不相同,其中涉及使用各種技術建立的許多應用程式。
具體例子:
事件收集器、指標和分析應用程式可以聚合公司網路中各種應用程式(Web 或非 Web)產生的事件。
Web 應用程式可以將訊息路由到與 SMS 傳送網關配合使用的 Java 應用程式。
MMO 遊戲可以使用 RabbitMQ 提供的靈活路由將事件通知傳播到玩家和位置。
來自公共市場或其他來源的價格更新可以在感興趣的各方之間分發,從交易系統到特定地理區域的銷售點。
內容聚合器可以透過 RabbitMQ 將實際索引工作委託給其他應用程式來更新全文搜尋和地理空間搜尋索引。
公司可以向其客戶、合作夥伴或公眾提供串流/推送 API。
持續整合系統可以使用 RabbitMQ 的高階路由功能在具有各種硬體和軟體配置的多台機器之間分發建置。
監視即時串流(無論是市場數據還是 Twitter 串流)更新的應用程式可以將更新傳播給有興趣的各方,包括即時顯示該資訊的 Web 應用程式。
現代兔子版本支持
對於使用 TLS 的環境,Bunny 希望 Ruby 安裝使用足夠新的 OpenSSL 版本,其中包含對 TLS 1.3 的支援。
Bunny 在 JRuby 上運行得足夠好,但在 JRuby 9000 之前的版本中存在已知的 JRuby 錯誤,會導致 CPU 消耗過高。 JRuby 使用者應使用 March Hare。
Bunny 1.7.x
是支援 CRuby 1.9.3 和 1.8.7 的最後一個版本
Modern Bunny 版本目標目前支援的 RabbitMQ 版本系列。
更改日誌。
要在使用 Bundler 管理的專案中使用 Bunny:
gem "bunny" , ">= 2.23.0"
要使用 RubyGems 安裝 Bunny:
gem install bunny
下面是一個小片段,示範如何使用 Bunny 發布和同步使用(「拉 API」)訊息。
有關使用更多實際範例的 15 分鐘教學課程,請參閱使用 Bunny 開始使用 RabbitMQ 和 Ruby。
require "bunny"
# Start a communication session with RabbitMQ
conn = Bunny . new
conn . start
# open a channel
ch = conn . create_channel
ch . confirm_select
# declare a queue
q = ch . queue ( "test1" )
q . subscribe ( manual_ack : true ) do | delivery_info , metadata , payload |
puts "This is the message: #{ payload } "
# acknowledge the delivery so that RabbitMQ can mark it for deletion
ch . ack ( delivery_info . delivery_tag )
end
# publish a message to the default exchange which then gets routed to this queue
q . publish ( "Hello, everybody!" )
# await confirmations from RabbitMQ, see
# https://www.rabbitmq.com/publishers.html#data-safety for details
ch . wait_for_confirms
# give the above consumer some time consume the delivery and print out the message
sleep 1
puts "Done"
ch . close
# close the connection
conn . close
有關使用更多實際範例的 15 分鐘教學課程,請參閱使用 Bunny 開始使用 RabbitMQ 和 Ruby。
Bunny 文件指南位於此儲存庫的docs/guides
下:
一些高度相關的 RabbitMQ 文件指南:
兔子 API 參考。
Bunny 有郵件清單。請使用它來解決所有問題、調查和討論。 GitHub 問題應該用於特定的、易於理解的、可操作的維護者和貢獻者可以處理的問題。
我們鼓勵您也加入 RabbitMQ 郵件清單。如果您有任何問題,請隨時提出。
如果您發現您很了解的錯誤、預設值不佳、文件不正確或不清楚,或缺少功能,請在 GitHub 上提交問題。
請使用 Bunny 的郵件清單進行提問、調查和討論。 GitHub 問題應該用於特定的、易於理解的、可操作的維護者和貢獻者可以處理的問題。
提交問題時,請指定您正在使用的 Bunny 和 RabbitMQ 版本,提供最新的 RabbitMQ 日誌檔案內容、完整的異常堆疊追蹤以及重現(或失敗的測試案例)的步驟。
另一個廣泛使用的 Ruby RabbitMQ 用戶端是 March Hare(僅限 JRuby)。它是一個成熟的函式庫,需要 RabbitMQ 3.3.x 或更高版本。
有關運行各種測試套件的更多信息,請參閱 CONTRIBUTING.md。
根據麻省理工學院許可發布。