Bunny は、使いやすさに重点を置いた RabbitMQ クライアントです。これは完全な機能を備えており、最新の RabbitMQ 機能をすべてサポートしており、重い依存関係はありません。
ここです!
Bunny を使用すると、Ruby アプリケーションを他のアプリケーション (Ruby に組み込まれているかどうかの両方) と相互運用させることができます。複雑さとサイズは、単純なワーク キューから、あらゆる種類のテクノロジで構築された多くのアプリケーションが関与する複雑な多段階のデータ処理ワークフローまでさまざまです。
具体的な例:
イベント コレクター、メトリクスおよび分析アプリケーションは、企業ネットワーク内のさまざまなアプリケーション (Web 以外) によって生成されたイベントを集約できます。
Web アプリケーションは、SMS 配信ゲートウェイと連携する Java アプリケーションにメッセージをルーティングする場合があります。
MMO ゲームは、RabbitMQ が提供する柔軟なルーティングを使用して、イベント通知をプレーヤーや場所に伝達できます。
公開市場やその他のソースからの価格更新情報は、取引システムから特定の地域の販売時点まで、関係者間で配布できます。
コンテンツ アグリゲーターは、実際のインデックス作成作業を RabbitMQ を介して他のアプリケーションに委任することで、全文検索インデックスと地理空間検索インデックスを更新できます。
企業は、顧客、パートナー、または一般の人々にストリーミング/プッシュ API を提供する場合があります。
継続的統合システムでは、RabbitMQ の高度なルーティング機能を使用して、さまざまなハードウェアおよびソフトウェア構成を持つ複数のマシン間でビルドを分散できます。
リアルタイム ストリーム (マーケット データや Twitter ストリーム) からの更新を監視するアプリケーションは、その情報をリアルタイムで表示する Web アプリケーションなど、関係者に更新を伝達できます。
最新の Bunny バージョンのサポート
TLS を使用する環境の場合、Bunny は Ruby のインストールでTLS 1.3 のサポートを含む最新の OpenSSL バージョンを使用することを期待します。
Bunny は JRuby 上で十分に動作しますが、JRuby 9000 より前のバージョンには、CPU の高負荷を引き起こす既知の JRuby のバグがあります。 JRuby ユーザーは March Hare を使用してください。
Bunny 1.7.x
CRuby 1.9.3 および 1.8.7 をサポートする最後のバージョンでした
最新の 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 ログ ファイルの内容、完全な例外スタック トレース、再現手順 (または失敗したテスト ケース) を提供してください。
もう 1 つの広く使用されている Ruby RabbitMQ クライアントは、March Hare (JRuby のみ) です。これは、RabbitMQ 3.3.x 以降を必要とする成熟したライブラリです。
さまざまなテスト スイートの実行の詳細については、CONTRIBUTING.md を参照してください。
MITライセンスに基づいてリリースされています。