最近、オンプレミスの Service Fabric の使用を開始することを決定しましたが、「依存関係」の問題が発生しました。
それらの間に依存関係があるいくつかのゲスト実行可能ファイルがあり、それらが依存しているサービスの再起動からは再起動しないと回復できません。
明確にするための例:
下の図では、サービス B はサービス A に依存しています。サービス A で予期しないエラーが発生して再起動すると、サービス B は「エラー」状態になります (ファブリックには報告されません)。これは、サービス B がエラー状態であっても正常性状態が OK であることを報告することを意味します。
私たちは、これらの行に関する解決策を考えていました:
クラスター内のすべてのレプリカ/パーティション/アプリケーションのヘルス状態イベントを監視し、依存関係ツリー全体を含む独立したサービスを起動します。
サービスのヘルス状態が変化すると、サービスは直接の依存関係を再起動します。これにより、イベントのドミノ効果が発生します -> サブツリー全体がリセットされるまで再起動します (以下のイベント -> アクション フロー チャートに示すように)。
問題は、healthReport イベントが短い間隔で送信されないことです (つまり、システム全体が機能せず、数分間わからないということです)。正常性の状態を監視しますが、履歴を知る必要があります (状態が現在正常であっても、以前にエラー状態ではなかったという意味ではありません)。
もう 1 つの問題は、イベントが任意のサービス レベル (レプリカ/パーティション) でポップされる可能性があり、すべてのイベントを集約する必要があることです。
この問題について何か助けていただければ幸いです。また、この問題に対する他の提案については、まったく別の方向であっても、完全にオープンです。