問題タブ [rhino-servicebus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - Rhino Service Bus は個々のユーザー応答を処理しますか?
ASP.NET MVC クライアントから Rhino Service Bus を試していますが、ユーザー応答用の機能が組み込まれているかどうかわかりません。Alexandria スマート クライアントの例では、各ユーザーがローカル キューに対して異なる IP を持つため、IServiceBus.Reply は自然に機能します。(接続が一時的に切れるとどうなりますか..?)
同様の機能を持つ Web サイトの場合、ユーザーごとに応答キューを作成する必要がありますか? では、キュー名の一部に UserId が含まれている可能性があり、そのようにして返信は適切な場所に戻るのでしょうか? 同じポートを共有し、URL だけが異なることはありますか?
rhino - メッセージがすべてのSagasにディスパッチされるのはなぜですか?
私はRhinoServiceBusを使用しており、SaveCustomerSagaとProcessReceiptSagaの2つのサガがあり、どちらの操作もUpdateInvoicesCommandを標準のメッセージコンシューマーに送信します。請求書が更新されるまで、どちらのSagasも完了しません。両方のsagasは、Orchestrates<'InvoicesUpdated>を実装して完了します。すべてのメッセージに同じCorrelationIdが使用されます。
ただし、UpdateInvoicesCommandのコンシューマーがメッセージInvoicesUpdatedで応答すると、両方のSagasにディスパッチされます。イベントの1つはまだ開始されておらず、CorrelationIdはすでに開始されているもう1つの佐賀に属しています。
CorrelationIdが一致する適切な佐賀にのみディスパッチするべきではありませんか?この動作を強制するために実行できる回避策またはインターセプトはありますか?
(v2.3.0を使用していますが、コミット履歴をざっと見てみると、これに関連する新しい変更ではないようです。)
rabbitmq - RhinoサービスバスでのRabbitMQの使用
RhinoESBに関するOrenEiniのMSDN記事を読みましたが、MSMQまたはRhinoキューの代わりにActiveMQ、RabbitMQなどを使用できると記載されています。しかし、MSMQまたはRhinoキュー以外のものを使用する例を見つけるのに問題があります。プロジェクトのためにRhinoESBと一緒にRabbitMQを調査していますが、必要な構成で何も見つかりません。誰かが私にいくつかのサンプルやリンクを提供できますか?
rhino-servicebus - MSMQ 経由の Rhino Service Bus を使用したメッセージング
Rhino Service Bus を使い始めたばかりで、MSMQ をトランスポートとして使用して 2 つのサーバー間でメッセージを中継しようとしています。何らかの理由で、バックエンド/ホストが別のサーバーにある場合、Rhino クライアントはメッセージを受信しませんが、同じマシンにある場合は正常に動作します。
トランスポートとして MSMQ の代わりに Rhino キューを使用すると、メッセージはサーバー間で送信されます。
ファイアウォールもオフにしました。また、メッセージのエンドポイントが適切なサーバーを指しているのに対し、バスのエンドポイントは常にローカルであることも確認しました。
何か案は?
ありがとう、
service - MSMQ メッセージを使用する Rhino Service Bus がバックエンドで受信されない
2台のマシンでRhino Service Busを使用してメッセージを送信する単純なクライアントとバックエンドを取得しようとしています。Rhino Queues を使用して動作させることができましたが、MSMQ に切り替えてメッセージを送信すると、バックエンドで受信されません。ここから取得したコード サンプルを使用しており、最も単純な例「E1_Hello_world_using_MSMQ_as_transport」を実装しようとしています。
クライアントからバックエンドにメッセージを送信すると、エラーが発生せずにメッセージが消えたように見えます (以下に定義されているエンドポイント uri 1 を使用している場合)。ただし、DIRECT=TCP:192.168.35.10\private$\LearningRhinoESB.E1.Backend という名前の新しいフォルダーが送信キューに表示されますが、キュー メッセージ フォルダーはまだ空です。
両方のマシンでファイアウォールを無効にし、エンドポイントのさまざまなバリエーションを試しました。
- msmq://192.168.35.10/LearningRhinoESB.E1.Backend <- これは、msmq に切り替える rhino キューで機能したものであり、喜びはありません
- msmq://192.168.35.10/private$/LearningRhinoESB.E1.Backend
- FormatName:DIRECT=TCP:192.168.35.10\LearningRhinoESB.E1.Backend
- FormatName:DIRECT=TCP:192.168.35.10\private$\LearningRhinoESB.E1.Backend
- FormatName:DIRECT=OS:192.168.35.10\LearningRhinoESB.E1.Backend
- FormatName:DIRECT=OS:192.168.35.10\private$\LearningRhinoESB.E1.Backend
何が間違っているのか、状況を診断する方法はありますか? これを機能させるために有効にする必要があるサービスはありますか?
nservicebus - appharbor に最適な ESB/メッセージ キュー
私は現在、Appharbor アプリケーションに最適なメッセージ キュー ソリューションを見つけようとしています。見たもののほとんどは、MSMQ と DTC がインストールされた Windows 環境があることを前提としていますが、これは appharbor 環境が提供するとは思えません。
私たちが使用しているデータベースである ravendb とうまく連携するものが欲しいです。レイヴンだけに依存しているものは、特に既存の作業単位と統合する場合に理想的です。つまり、コントローラ アクションで save changes が呼び出されると、メッセージは同じトランザクションに保存されます。
また、バックグラウンド処理用のコンソール アプリケーションで動作するホストも必要です。
理想的には、開発環境でも「うまく機能する」ものが欲しいです。たとえばravenでは、開発中に組み込みモードを使用していますが、インストールを必要としないものが欲しいです。
nServicebus を見てきましたが、トランスポート (msmq、sql など) が必要であり、ドキュメントの多くが古くなっているため、これらの条件を満たしていないようです。
rhino Service Bus も調べましたが、ドキュメントとコミュニティが明らかに不足しています。また、完全にravendbに依存できるかどうかもわかりません。
私が調べた他のものはすべて非常に重く、開発環境で実行するにはインストールと構成が必要でした。
編集: 他のオプションは、独自のものを実装することです。
c# - RhinoServiceBus を PRISM/Unity とうまく連携させる
私はちょうどこの 48 時間を上記の実現に費やしました。Rhino Service Bus は非常に有用であると思いますが、ドキュメントには多くの要望が残されています。私が直面していた問題を解決したので、他の人が私がやったことを見るのに役立つかもしれないと思ったので、ここにあります. うまくいけば、誰かがそれを見つけるでしょう。
私は WPF/PRISM/Unity レポート アプリケーションを開発しており、サービス バスを使用して、VPN 経由で接続したときにバス メッセージを介してデータを取得するアプリケーションを時折接続できるようにしたいと考えていました。アプリのブートストラップにバスを導入し、Rhino DefaultHost でホストしました。ConsumerOf インターフェイスを実装するクラスのコンストラクターに IEventAggregator を挿入しようとするまでは、これによりバスが動作し、メッセージが十分にやり取りされました。
「IEventAggregator はインターフェイスであり、構築できません。型の登録がありませんか」というエラーが表示され続けましたが、イベント アグリゲーターがアプリケーションの Bootstrapper でシングルトンとして登録された理由がわかりませんでした。
問題は、ConsumerOf を実装するクラスを登録すると、そのクラスがバスの内部 Unity コンテナーに結び付けられ、そのクラスがアプリケーション コンテナーに対して持つ可能性のある接続をオーバーライドするように見えることです。
解決策 (一度見れば明白であることは認めます) は、失敗した解決 (IEventAggregator が見つからない?!) が解決のために親に渡されるように、バス コンテナーをアプリケーション コンテナーの子コンテナーにすることです (ああ、ほら、ここだ!!)。
それを達成する方法は次のとおりです...
また、ConsumerOf を実装しているアプリケーション内のクラスを見つけるために、ESBBootstrapper 内の同じオーバーライドを変更する必要がありました。これは次のように行われました...