ゲートウェイ融着のマイクロサービスSpringCloud、電流制限、再試行

ピュアな笑顔春の雲シリーズがついに完成学校ブログ、春の雲も予備的な理解を持っています。

フィルタの変更要求のパス

StripPrefixフィルターが要求パスの傍受機能である、我々は特別なフォワーディング事業を行うには、この機能を使用することができます。

       -  ID:StripPrefix
         タグ:http://www.cnblogs.com
         述語:
           - パス= /名前/ **
         フィルター:
           -  StripPrefix = 2

要求パスにマッチしたStripPrefixとき/名前/ **名がStripPrefix = 2が撮影したパスの数を表し、文字列を順方向および後部が削除されますが含まれ、時にアクセスのhttp:// localhostを:8081 /名前 / AA / 5ishare時間がにジャンプしますhttps://www.cnblogs.com/5ishareページ。

 アクションPrefixPathフィルタとStripPrefix反し、接頭辞は、URLパスの一部の前に追加されます。

       -  ID:prefixpath_route
         タグ:http://www.cnblogs.com
         述語:
            - メソッド= GET
         フィルター:
            -  PrefixPath = / 5ishare

お使いのブラウザに入力します。http:// localhostを:8081 / P / 11831586.html  ページにジャンプしますが  https://www.cnblogs.com/5ishare/p/11831586.html

 スピードルータ

高速同時実行シナリオより一般的に使用される方法の一つは、効果的に全体的なサービスの安定性を保証することができ、春クラウドゲートウェイはRedisのに基づいて電流制限スキームを提供します。我々は、対応する依存関係スプリング・ブート・スターター・データ・Redisの反応性を追加する必要がありますので。

< 依存性> 
    < のgroupId > org.springframework.boot </ のgroupId > 
    < たartifactId >ばねブートスタータデータRedisの反応性</ たartifactId > 
    < バージョン> 2.0.4.RELEASE </ バージョン> 
</ 依存>

Redisのアドレスと関連する構成を制限を追加するための設定ファイル

サーバ:
  ポート:8081
ユーレカ:
  クライアント:
    サービスURL:
      defaultZoneます。http:// localhost:8088 /ユーリカ/
ログ:
  レベル:
    org.springframework.cloud.gateway:デバッグ
春:
  応用:
    名前:SpringCloudGatewayDemo
  繰り返し:
    ホスト:localhostの
    パスワード:
    ポート:6379
  雲:
    ゲートウェイ:
      発見:
        ロケータ:
          有効:真
      ルート:
       -  ID:requestratelimiter_route
         タグ:http://example.org
         フィルター:
          - 名前:RequestRateLimiter
            引数:
             Redisのレート-limiter.replenishRate:10
             Redisのレート -  limiter.burstCapacity:20
              キーリゾルバ: "#{@ userKeyResolver}"
         述語:
           - メソッド= GET
コードの表示

フィルタ名はRequestRateLimiterでなければならない
のRedisレート-limiter.replenishRate:ユーザーが1秒あたりの要求数に処理することを可能にする
のRedisレート-limiter.burstCapacityを:トークンバケット容量、要求の最大数は、1秒で完了する
キーリゾルバ:名前でSPEL Bean参照を使用します

コンフィグクラスを作成するプロジェクトを制限するポリシーを設定。次のようにユーザ制限に要求パラメータフィールドが提供される流量制限のIPアドレスに、要求に応じて提供されてもよいです。

パッケージcom.example.demo。

輸入org.springframework.cloud.gateway.filter.ratelimit.KeyResolver;
輸入org.springframework.context.annotation.Bean;

輸入reactor.core.publisher.Mono;

パブリック クラスコンフィグ{
    @豆
    公共KeyResolver ipKeyResolver(){
         戻り交換- > Mono.just(exchange.getRequest()getRemoteAddress()のgethostname());
    }


    @豆
    KeyResolver userKeyResolver(){
        リターン為替- > Mono.just(exchange.getRequest()getQueryParams()getFirstと( "ユーザー"。。 ));
    }
}
コードの表示

ヒューズルータ

春クラウドゲートウェイはまた、我々が最初に依存しているプロジェクトに追加し、交通渋滞の中に特性Hystrix行うサービスの低下を融合の利点を取ることができます。

< 依存性> 
    < のgroupId > org.springframework.cloud </ のgroupId > 
    < たartifactId >ばねクラウドスタータのNetflix-hystrix </ たartifactId > 
    < バージョン> 2.1.3.RELEASE </ バージョン> 
</ 依存>
       -  ID:hystrix_route
         URI:LB://春-クラウドプロデューサー
         述語:
           - パス= / consumingserviceendpoint
         フィルター:
           - 名前:Hystrix
             引数:
              名前:fallbackcmd
              fallbackUri:フォワード:/ incaseoffailureusethis

fallbackUri:フォワード:/ incaseoffailureusethisパスがHystrixが呼び出され、フォールバックを呼び出す際にフォールバック、要求はこのURIをincaseoffailureuset /に転送されるときに調整されるように構成される。

再試行ルータ

RetryGatewayFilterは、提供要求の再試行にGatewayFilter工場春クラウドゲートウェイです

       -  ID:retry_test
         URI:LB://春-クラウドプロデューサー
         述語:
           - パス= /再試行
         フィルター:
           - 名前:再試行
             引数:
              リトライ:3
              ステータス:BAD_GATEWAY

再試行:再試行回数、デフォルト値は3つのです
ステータス:org.springframework.http.HttpStatus:HTTPステータスコードが返され、値が参照
方法:再試行ロジックを必要とする方法を指定するように要求、デフォルト値はGETメソッドです、基準値:org.springframework.http.HttpMethod
シリーズ:直列構成のステータスコード、基準値:org.springframework.http.HttpStatus.Series。状態が5XX(状態コード5開始)、5つの値の合計であり、値が5で、デフォルト値はSERVER_ERRORで、行動の再試行ロジックの特定のコードを遵守します。

 

おすすめ

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