序文
なぜあなたは必要ですかサービスヒューズとダウングレード?マイクロサービスは、原則として、単一の機能モジュールの責任であり、現在、業界の主要な傾向であるサービスに依存しない子、サービス間でお互いを呼び出す、サービス間の結合を低減します。しかし、これはいくつかの問題になります。
多数の上の図のマイクロサービスがお互いを呼び出す、依存関係が多いが、必然的に存在しますサービス障害問題を抱えているServiceG、ServiceF、サービスA、ServiceBにつながる、などのサービスの問題などを、した後に、他のサービスに影響を与えるカスケード失敗最終的に、システム使用不能につながる崩壊が、されて雪崩を提供します。
もちろん、いくつかのシーンがありますが、特定のサービスのための時間のいくつかは、高い同時表示され、あなたは、いくつかのサービスを必要とする、明らかに合理的なされていない状況を、およびそれらのサービスの一部は、リソースの不足を取るダウングレードし、弱体化システムリソースを取ります。
春の雲のジュニアパートナーおなじみの、最初の応答があるべきであるHystrix。しかし、同情は、ネットフリックスがいることを発表したことがあるHystrix停止更新のため。だから何より良い選択?推奨公式春の雲に加えてresilience4jを、そこには、現在されている春のクラウドアリババセンチネルにより連結対象の調査と選択に焦点を当てることができる小型のパートナー。
Sentinelは何ですか
Sentinelはされたアリの開発が配向軽量分散型サービスアーキテクチャフロー制御製品を、出発点として、主に流れの中で、フロー制御を、ヒューズは保護システムの負荷格下げなど当社のサービスの安定性を保護するように複数のディメンションを。センチネルは2つの部分に分かれて使用しています。
hystrix-ダッシュボードと似ていますが、それはより強力である:1、センチネル・ダッシュボード。hystrix、ダッシュボードと同様に加えて、リアルタイムのモニタリングを提供するだけでなく、フロー制御ルール、ルールラインヒューズの保守提供および他の機能。
2、クライアント統合:各マイクロサービスクライアントはセンチネルのクライアントパッケージと構成を統合するために必要な情報を監視するためには、ダッシュボードの表示とに報告されるリアルタイムの変更や制限ヒューズルールようにと。
展開センチネルダッシュボード
ダウンロード
githubの彼のリリースを参照するには、上記センチネル、現在は最新バージョンV1.6.3、クリックしてダウンロードの要素を検索します
ファイル名を指定して実行Sentinel.jarのデフォルトポート8080 Sentinelは、もちろん、あなたはまた、ライン上の起動時にそれを設定し、他のポートを変更することができています。我々は彼がバックグラウンドで実行できるように起動したとき。
-
nohup java -jar sentinel-dashboard-1.6.3.jar &
ログインセンチネルコンソール
サービスにアクセスするためのIP +ポート番号、ユーザー名とパスワードは、次のとおりです。センチネル
見るために着陸した後、フロー制御、設定ルールダウングレード
センチネルゲートウェイサポート
主流の春クラウドゲートウェイ、Zuulおよび他のAPI Gatewayのセンチネルのサポートは限定的であること。
センチネル1.6.0導入センチネルAPI Gatewayアダプタの共通モジュールは、このモジュールは、ゲートウェイAPIおよびカスタムエンティティと管理ロジックを制限するルールが含まれています。
1、GatewayFlowRule:ルールを制限するゲートウェイ、これは独自のルーティング・シーン・ゲートウェイの設計に応じて、異なる経路またはカスタムグループ化APIを限定することができるリクエストパラメータをサポートし、ヘッダー、送信元IPおよび他のカスタマイズされました制限。
2、ApiDefinition:API定義されたユーザー定義のパケットは、URLにマッチのいくつかの組み合わせとして見ることができます。たとえば、私たちは**下記のグループ化myapi APIに戻す/ myapi、要求されたパスモード/ fooの/ **および/バズと呼ばれるAPIを定義することができます。電流制限はするように指示することができる場合にはAPIのパケットカスタム寸法を制限すること。
ルールを制限するゲートウェイGatewayFlowRule
フィールドは説明し、次のように:
1、リソース:リソース名
APIのユーザー名またはグループ名ルートゲートウェイカスタム。
2、resourceMode
ルールはのためにあるAPI Gatewayのルートセンチネル中(RESOURCEMODEROUTEID)またはユーザーAPIのカスタムグループ(RESOURCEMODECUSTOMAPI_NAME)、デフォルトルート。
3、グレード
インデックスの大きさを制限するグレードのフィールドを制限するルールで、。
4、カウント:制限スレッショルド5、intervalSec
時間のStatisticsウィンドウには、秒単位で、デフォルトは1秒(発効を制限する現在唯一のパラメータ)です。
6、controlBehavior
制御効果をトラフィックシェーピングは、controlBehaviorフィールド制限ルールで、現在サポートして迅速かつ均一な回線障害、モードをデフォルトが速く失敗することです。
図7に示すように、バースト
予想外の要求の追加許容(発効を制限する現在唯一のパラメータ)に対処するための要求の数。
8、maxQueueingTimeoutMs
ミリ秒単位で定速モードで時間をキューイング最長キュー、唯一の定速モードでのキューイング効果。
9、paramItemの設定を制限するパラメーター。提供されない場合は、ゲートウェイ・ルールのパラメータを制限しないことを意味する共通流制御ルールに変換され、そうでない場合、ルールは、ホットスポットに変換されます。フィールドは以下のとおりです。parseStrategy:要求ポリシーからパラメータを抽出し、現在のソースを抽出するために、4つのモードをサポートし、* IP(PARAMPARSESTRATEGYCLIENTIP)*ホスト( PARAMPARSESTRATEGYHOST)* 任意のヘッダ(PARAMPARSESTRATEGYHEADER)*任意のURLパラメータ(PARAMPARSESTRATEGYURLPARAM)
fieldNameには:抽出法は、ヘッダーモードまたはURLパラメータモードを選択した場合は、対応するヘッダ名やURLのパラメータ名を指定する必要があります。パターンとmatchStrategy:パラメータ整合特性のために予約
ルールは、ゲートウェイGatewayRuleManager.loadRules(ルール)のマニュアルを介してロードされ、又はGatewayRuleManager.register2Property(プロパティ)によって動的ルールソース動的プッシュ(推奨方法)を登録することができます
ゲートウェイフロー制御の実装の原則
上の図全体のプロセスは次のとおりです。
1、センチネルは、外部要求ゲートウェイがAPI入ったときに達成し、フィルタを通過します順番に組み立て/ APIマッチしたパケット、リクエストパラメータと分析プロパティをルーティングされます。
2、センチネルは、フロー制御ルールの性質に応じてゲートウェイに要求を解析するように構成され、パラメータ配列インデックス順序、SphU.entryにおける最終パス(RES、引数)のパラメータに従って組み立てられます。
。3、センチネルAPIゲートウェイアダプタモジュールは、スロットチェーンにGatewayFlowSlot共通を追加する定期的なチェックゲートウェイを作るために設計され、。
。4、GatewayFlowSlotはGatewayRuleManagerのから生成された高温のパラメータルール抽出順次渡されたパラメータに基づいて、ルールをチェックします。ルールは、属性の要求でない場合、それはになり、最後のプリセット定数パラメータの挿入位置、一般的なフロー制御の効果を達成します。注意:
場合GatewayRuleManager介してロードするときGatewayFlowRuleゲートウェイフロー制御ルール、特性を制限するための要求か否かを、底がセンチネルなりホットフロー制御パラメータルールParamFlowRuleにゲートウェイルール通常、単離されたホットパラメータルール記憶部にGatewayRuleManagerで、。センチネル設定属性要求に基づいて、変換、インデックスIDXゲートウェイフロー制御ルールのパラメータを設定し、同期に発生したホットパラメータルールに
概要
センチネル1.6.0バージョンを開始するには、提供さSpringCloudゲートウェイアダプタモジュール、2つのリソースは、電流制限寸法を提供することができます。
。1、経路寸法:ルーティングエントリSpring構成ファイルで構成され、リソース名は、対応するルートID
2、カスタムAPIの寸法:ユーザーはいくつかのパケットを定義するためにAPIから提供されたセンチネルAPIを使用することができます