1

Rebus と RabbitMQ を一緒に使用して、いくつかの異なるシナリオをカバーすることを検討しています。

シナリオ A 中央サーバーが任意のサブスクライバーのリストにプッシュ通知を送信できるようにしたいのですが、メッセージは永続的または永続的である必要はありません。サブスクライバーが接続されている場合は通知を受け取る必要がありますが、切断されている場合は、クライアントのメッセージをキューに入れる必要はありません。

これまでのテストでは、プロデューサーとコンシューマーがUseRabbitMqInOneWayMode()and と通信することができましManageSubscriptions()たが、サブスクライバーがいない場合、またはサブスクライバーが切断された場合、RabbitMQ でメッセージが蓄積されます。のヘッダーを false に設定しようとしましたRabbitMqMessageQueue.InternalHeaders.MessageDurabilityが、効果がありません。Rebus が設定するデフォルトのキューが耐久性があるためだと思います。Rebus 内でこの動作を制御する方法はありますか?

シナリオ B クライアントがオンラインになるか切断されたときに、クライアント間に要求/応答チャネルをセットアップしたいと考えています。例えば:

  1. クライアント A とクライアント B が接続する
  2. クライアント A は、クライアント B だけが持っているデータを要求するメッセージを送信します。クライアント B は情報を収集し、A に返信します。
  3. クライアント B が切断される
  4. クライアント A はクライアント B にデータを要求しますが、B が使用できなくなったため、エラーを受け取るはずです。

この場合の推奨構成は何ですか?

ありがとう。

4

1 に答える 1