Zuulフィルタ

Zuulフィルタ

Zuulフィルタのプロフィール

春の雲Zuulは、ルーティング要求と2つのフィルタ機能が含まれています。機能をルーティングする責任がある特定のマイクロサービスに要求を転送し、フィルタが介入する要求を処理する責任がある権限チェックの基礎であり、かつサービスアグリゲータの他の機能。

実際の動作では、いくつかの異なるフィルタによる経路マッピング及び転送要求が完了しました。それぞれの要求応答処理チェーンを与えるために一連のフィルターを通してzuul httpリクエストを入力して、クライアントに返されます。

4種類のフィルターを備えたスプリングクラウドzuul。

  • プレフィルタ。リクエストがルーティングされる前に呼び出されます。マイクロサービスの前にZuul要求。例えば、要求認証、サービスインスタンスのマイクロ、記録デバッグ情報を選択します。
  • ルートフィルタ。マイクロサービスへの要求を転送する責任。この中で、元の要求を構築、およびApacheのHttpClientやNetflixのリボンを使用して、元の要求を送信します。
  • ポストフィルタ。ルートが呼び出され、エラーフィルタされた後。あなたは、それに応答して、標準のHTTPヘッダーを追加し、統計や指標を収集するだけでなく、その上のクライアントに送信し、応答することができます。
  • エラーフィルタ。エラーが発生したときに要求を処理と呼ばれています。

デフォルトのフィルターに加えて、Zuulはまた、私たちは、カスタムフィルタの種類を作成することができます。例えば、我々は、静的な型のフィルタをカスタマイズすることができ、その代わりに、特定のマイクロサービスに要求を転送する応答Zuulを生成します。

ライフサイクルZuul要求次のとおりです。

マーク

参考NetflixのZuulウィキ

カスタムZuulをフィルタリング

新しいモジュールmicroservice-ゲートウェイ-zuulフィルタを作成します。

Zuulユーレカクライアントを依存している追加します。

1 
2
3
4
5
6
7
8
< 依存性 > < のgroupId > org.springframework.cloud </ のgroupId > < たartifactId >ばねクラウドスタータのNetflix-zuul </ たartifactId > </ 依存 > < 依存性 > < のgroupId > org.springframework.cloud </ のgroupId > < たartifactId >ばねクラウドスタータユーレカ</ たartifactId > </ 依存 >







application.yml:

1 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
スプリング:
アプリケーション:
名前: microservice-ゲートウェイzuulフィルタ

サーバー:
ポート: 8809

ユーレカ:
クライアント:
サービスURL:
defaultZone: のhttp:// localhostを:8761 /ユーレカ
インスタンス:
好む-IPアドレス:

zuul:
ルート:
USER1:
パス: /ユーザー/ **
サービスID: microservice-springcloud-ユーザー
stripPrefix:

ログ:
レベル:com.netflix:デバッグ

フィルタの前のタイプを定義し、リクエストURIを記録します。

1 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
パブリック クラスが  延び ZuulFilterを  { 民間最終静的ロガーロガー= org.slf4j.LoggerFactory.getLogger(MyZuulPreFilter.class)。パブリック文字列のfilterType () { 戻り「プレ」    }







公共 INT filterOrder () {戻り0 ; //次フィルタ、より少ない数の最初の実行 }




パブリック ブール shouldFilterは() {返すtrueに ; //フィルタするかどうか。 }



特定によって実行//フィルタ演算パブリックオブジェクトRUN () { = RequestContext.getCurrentContextのHttpServletRequest要求()のGetRequest(); 文字列requestUri Request.getRequestURI =(); logger.info("要求URI:{}"、requestUri ); 戻りNULL ; } }








春ブーツ主なカテゴリ:

1 
2
3
4
5
6
7
8
9
10
11
12
13
14
@SpringBootApplication 
@EnableZuulProxy
パブリック クラス ZuulFilterApplication
{ 公共静的ボイドメイン(文字列[]引数) { SpringApplication.run(ZuulFilterApplication.class、引数)。 }





@Bean 公共 MyZuulPreFilter myZuulPreFilter () { 戻り新しい)(MyZuulPreFilterします。 } }




テスト:

ユーレカサーバ、ユーザモジュールとmicroserviceゲートウェイ-zuulフィルタを起動します。

私たちは、Zuulのホストとポート/サンプル/ 1でユーザモジュールにアクセスします。

マーク

私たちは、コンソールを見てください。

マーク

私たちは、単にどのようなURI要求を記録します。その他の用法はZuulFilterが実装Netflixのコアパッケージを参照することができます。

マーク

フィルタの詳細については、Zuulリファレンスを使用することがあります:https://www.jianshu.com/p/ff863d532767

オリジナル:ビッグボックス  Zuulフィルター


おすすめ

転載: www.cnblogs.com/wangziqiang123/p/11652212.html