2017-10-24 1 views
0

RegisterServiceNotificationFilterAsyncを使用してサービス変更イベントを通知するサービスをセットアップしました。意図したとおりに動作します。サービスが停止すると、このイベントが呼び出されます。サービスを停止する前にサービスファブリック通知がありますか?

しかし、サービスがオフラインになった後に発生します。これは、ロードバランサープールから取り除かれる前に、オフラインサービスのリクエストに対していくつかのリクエストが失敗している可能性があることを意味します。

サービスファブリックは、オフラインになっているサービスにのみ反応することがあります。たとえば、誰かがサーバーノードのプラグをプルすると、サービスファブリックは、サービスがオフラインになっていることを前もって私に知らせることはできません。

しかし、何度もしきい値に達し、サービスファブリック自体がサービスを停止し(新しいサービスを開始します)。

BEFOREサービスファブリックがサービスを停止することを知る方法はありますか?(だから私は私のloadblancerを更新する時間を持っている。)

(ケースで、私が敷地内にサービスファブリックを実行しています、問題になります。)

+0

クライアントがサービスを呼び出す際には、再試行ロジックが必要です。 SFはさまざまな理由であなたのコールを別のインスタンスにリダイレクトできます。たぶんこれはあなたがこれらのダウンタイムを捕まえてそれに応じて行動できる場所です。これらのイベントを別のキューにプッシュして処理できます。 – Robert

+0

@Robert - 私のアプリはそれを持っているはずです。しかし、多くはしません。サービスファブリックがサービスを移行するだけで、サービスファブリックに障害を追加する必要はないため、多くの問題が発生します。 – Vaccano

答えて

0

あなたが唯一のサービス内のシャットダウン時に通知することができます。 RegisterServiceNotificationFilterAsyncは、ネーミングサービスのエンドポイントの変更に基づいています。

それが信頼性の高いサービスだ場合、あなたはこれらのシナリオのためのイベントを取得:ゲストのためにhttps://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-services-lifecycle

は、信号サービスファブリック送信にCtrl + Cであるexecuteables。コンテナの場合、それは "ドッカー停止"です。

関連する問題