マイクロヒューズのサービスSpringCloud

   SpringCloudマイクロブログを学習サービスが参照純粋な笑顔で、溶断したヒューズの初日の実装、そして今は、以前の国家ストックから、それはまだ面白いだと思うことを覚えて、彼は私が助けるが、約Tucaoすることができない株式市場を融合させると呼ば確認してくださいそして今、全国の不動産投機、投機が単語である、問題は、人口の高齢化やその他の要因と相まって、貿易戦争のように、私はそれを維持することができますどのくらいかわからない、5000の前に、今、住宅市場や株式市場で悲観することも私は非常に楽観的ではないと思います。

   ヒューズとヒューズ自宅で、高すぎる、または低すぎる電圧は、電気機器に損傷を引き起こす可能性があり、保護を開始し、同様に、ヒューズの役割は、電圧が異常であるとき、直接カットオフであり、他の家電製品の使用には影響しませんが、唯一のヒューズ線、壊れほとんど影響は、雪崩を防ぐための方法です。Redisの雪崩と浸透があり、SpringCloudも雪崩があります。サービスBのサービスコール、サービスもBハング、Dサービスは保護ハングアップ、そして、もしない場合は、サービスはC、Cぶら下げBがハングするハングします、B、Cのサービス、サービスコールのCのDサービスを呼び出しますハングアップしていると思われる、ぶら下げ、勇気トン出力容量を必要とし、理論を学ぶことは非常に同じ目的です。注文が雪崩逆回復した後、それは最初C、B、Aをリストア次に、Dサービスを復元する必要があります それ以外の場合は、最初の回復A、Bまたはそれをハングアップ、Aはまだぶら下がってその時の場合。以下は、書かれたプレゼンテーションの比較です。

1.回路遮断器機構

回路遮断器は、よくバックエンドサービス要求がHystrixコマンド量が一定の割合(デフォルト50%)を超えて失敗した場合、回路遮断器が開状態(オープン)に切り替わり、ことが理解される。この場合、すべての要求をバックエンドサービスの障害に直接送信されていません回路ブレーカが(バック、リクエストが成功した場合は、この場合の状況を返すように要求を決定します。自動的に半開状態(ハーフオープン)に切り替わります(デフォルトでは5秒)、一定期間後に開いた状態のままで、回路ブレーカーのスイッチの開閉状態CLOSED)、またはオープン状態(オープン)に切り替える。Hystrix回路ブレーカーがヒューズに私たちの家族のようなものですバックエンドサービスが利用できない一度、回路ブレーカが無効な要求を大量に送信することを避けるために、、リクエストの直接チェーンを切断するシステムのスループットに影響を与えますそして、回路遮断器は、自己テストおよび回復する能力を持っています。

2.Fallback

バックエンドサービスリクエスト例外は、あなたが値をフォールバック方式のリターンを使用することができたときにフォールバック同等のダウングレード。クエリ操作のために、我々は、フォールバック方式を実現することができます。戻り値は、通常はデフォルト値を設定したり、キャッシュのフォールバック方式からさ。

3.リソースの分離

我々は、複数のスレッドに分割されます際に通常使用されて、分離を達成するために、スレッドプールのリソースによって主にHystrixでリモートサービスコールをベースとプール。例えば、商品やサービスを呼び出すスレッドプール、コマンド呼び出しアカウントサービスプットをコマンドスレッドプールにB。これの主な利点は、動作環境を離れて設定されたことである。このようなサービスは、呼び出し元のコードのバグかによる他には、自分の時間のスレッドプールが使い果たされる原因となる場合でも、他のサービスシステムには影響しませんが、存在します。しかし、複数のスレッドを維持するためのコストは、追加のパフォーマンス・オーバーヘッドをもたらすでしょうプールシステムをもたらすことです。そこに厳格な性能要件であり、サービスを呼び出すためのクライアントコードは問題ではないと考えている場合、あなたは(Hystrix信号パターンを使用することができますリソースを分離するセマフォ)。

SpringCloudでは比較的単純な達成するため、装うは、何も変更せずに、わずか3ステップHystrixのMavenの設定に依存しすぎてきました。

1.プロファイル

ブログに基づいてEurekaConsumer、プロパティファイルにHystrix機能のfeginを開始します。

feign.hystrix.enabled =真

2.コールバッククラスを作成します。

パッケージcom.example.demo。

輸入org.springframework.stereotype.Component。
輸入org.springframework.web.bind.annotation.RequestParam。

@Component 
パブリック クラス HelloRemoteHystrixは実装HelloRemote { 
    @Override 
    パブリックストリングハロー(@RequestParam(値=「名前」)文字列名){
         戻り「ハロー」+名+「Hystrixによって送るこのmessge」
    } 
}

3.フォールバック属性を追加します。

HelloRemoteクラスの指定されたフォールバッククラスは、コンテンツがサービスヒューズでクラスをフォールバック返し追加。

パッケージcom.example.demo。

輸入org.springframework.cloud.openfeign.FeignClient。
輸入org.springframework.web.bind.annotation.RequestMapping。
輸入org.springframework.web.bind.annotation.RequestParam。

@FeignClient(名 = "スプリングクラウドプロデューサー"、フォールバック= HelloRemoteHystrix。クラスパブリック インターフェースHelloRemote { 

    @RequestMapping(値 = "/ハロー" パブリック文字列ハロー(@RequestParam(値= "名前" )文字列名)。

}

ヒューズを導入するために、この時点で完了している、我々は次をテストすることができます。サービスEurekaServerを開始するためには、生産者のEurekaClient、消費者EurekaConsumer。

今入力します。http:// localhostを:9001 /こんにちは ?名前= cuiywを次のように、出力は正常です。

EurekaClientが停止した場合は、入力した9001 /こんにちはcuiyw名=:// localhostのは?:HTTPをヒューズ成功を示す、次のように、出力は、プラス上記吹きフォールバッククラスのリターン。

 参考ます。http://www.ityouknow.com/springcloud/2017/05/16/springcloud-hystrix.html

おすすめ

転載: www.cnblogs.com/5ishare/p/11184512.html