私はAzure Service Busに裏打ちされたNServiceBus
を使用して、単純なpub-subデモを実装しようとしています。AzureサービスバスキューのNServiceBus pub-sub
私は加入者を作成するたびに、ユニークな名前のEndpoint
とEndpointInstance
を作成し、そのサブスクライバにサブスクライブします。イベント私は興味があります
加入者がシャットダウンすると、私はイベントから退会し、EndpointInstance
を停止します。
ただし、サービスバスを確認すると、プロセスで作成されたキューおよびトピックのサブスクリプションがクリーンアップされません。これは、しばらくすると、EndpointInstance
の名前を生成する方法のために、何度も使用されない何百ものキューとトピックサブスクリプションが潜在的に存在することを意味します。
どうすればそれらをきれいにできますか?
何か不足していますか?すべての加入者に新しいEndpoint
とEndpointInstance
を作成してはいけません(これは公式のサンプルとガイドで使用されているパターンのようです)。
UPDATE:
だけ頭に浮かんだの類推は、クライアント(加入者)がオンラインになると、バスに加入プッシュ通知システムのようなものです。イベントが公開されると、私はオンラインクライアントがそれを受け取ることを望みます。クライアントがシャットダウンされると、クライアントがオンラインになったときに失われたメッセージを受け取ることに興味がないので、送信されたメッセージは気にしません。サブスクリプションを閉じて、基盤となるインフラストラクチャ(キュー、サブスクリプションなど)をクリーンアップしたいと考えています。
私のシナリオでは、各クライアントは独自のエンドポイントとエンドポイントインスタンスを定義します。この時点で論理エンドポイントはどのように機能しますか?
実際の問題の詳細を教えてもらえますか?たぶんそのデザインの問題。 これらのインスタンスはすべて同じエンドポイントですか?スケールアウトするためですか? –
「これは、公式のサンプルやガイドで使用されているパターンのようです」という文章を参照しているドキュメントはどれですか? –
退会すると、サブスクリプションが削除され、そのエンドポイントにメッセージが到着しなくなります。しかし、エンドポイントを停止しても、キューは削除されません。それは一時的にメンテナンスのために下がり、再度立ち上げることができます。 Ramonが言及したように、あなたがデモしたいものと期待しているものを提供してください。 –