0

SpringMVC+JSP を使用して実装された Web ページがあります。各ページで必要なデータを取得するために、外部 API を呼び出します。手順の概要は次のとおりです。 - リクエストがコントローラーに到着する - データを取得するために API が呼び出される - データが JSP ビューモデルに追加され、ユーザーに返される。

MultiThreadedHttpConnectionManagerAPI を呼び出すには、接続と読み取りタイムアウトで初期化されたRestTemplate を使用しています。API が利用できない場合、RestTemplate は Web ページのコントローラーによって処理される例外をスローします。

最近、Hytrix について読んでいましたが、システム間で要求を行うために使用されているようです。Hytrix が私たちのシステムでどのように役立つか、またそれを統合する方法について説明をお願いします。

さらに、API 実装はさまざまなソースからデータを取得します。そのうちの 1 つはデータベースです。Hytrix は、データベースがダウンしているシナリオでも役立ちますか?

前もって感謝します。

4

1 に答える 1

1

簡潔な答え

Hystrix は、システム間で要求を行いません。要求コードをラップして監視(タイムアウト、エラー カウント) を取得し、サーキット ブレーカーを提供して、アプリケーションが呼び出しを再び「デッド」システム (リモート サービスまたはデータベース) に作成するのを停止します。

少し長い答え

Hystrix は、サービスと永続性/リモート サービス レイヤー (以降は永続性のみ) の間のシン ラッパーです (これが最も一般的なユース ケースだと思います)。サービスから永続性を直接呼び出す代わりに、実際の永続性呼び出しを含む新しい HystrixCommand を作成しています。このコマンドは高度にカスタマイズ可能で、すぐに使用できるタイムアウトとサーキット ブレーカーのメカニズムを提供します。呼び出しがタイムアウトしたり、多くの例外が生成されたりした場合は、実装できる (実装する必要がある) フォールバック実装に切り替わります。したがって、フォールバックがデータベースのダウンタイムの場合にも役立つかどうかは、ユースケース次第です (キャッシュされたデータの使用など)。副作用として、呼び出しの統計情報も得られます: エラー数、パーセンテージ、呼び出しの量...

1 か月前に、HystrixCommands (および Collapsers) の使用を開始し、Hystrix とインターフェイス通信全般に関するブログ投稿を作成しました。追加情報 (または混乱 ;) を提供する可能性があります)。

于 2015-02-12T13:42:44.913 に答える