SpringCloudエントリ-5 --- Zuul(サービングゲートウェイ)

SpringCloudは1はじめに---はじめに

SpringCloudエントリー2 ---ユーレカ(サービス発見コンポーネント)

SpringCloudを装う(サービスコール成分)--- 3はじめに

SpringCloudエントリ4 --- Hystrix(ヒューズアセンブリ)

SpringCloudエントリ-5 --- Zuul(サービングゲートウェイ)

第五章では、我々はZuulの右SpringCloud(サービングゲートウェイ)の簡単な説明を行います。

1.なぜ我々はマイクロゲートウェイサービスが必要なのか

       一般的に、異なるマイクロサービスは、異なるネットワークアドレスを持っているし、外部クライアントは、ビジネスニーズを完了するために、複数のサービス・インターフェースを呼び出す必要があります。例えば、映画のチケットコレクションAPPは、マイクロフィルムの分類は、ユーザーのマイクロサービス、少額決済サービスのサービスをコールバックすることがあります。クライアントとマイクロサービスが直接通信する場合は、についての質問があります:
#のクライアントが繰り返し異なるマイクロサービスを要求し、クライアントの複雑さを増す;
特定の場面で扱わクロスドメインリクエスト、比較的複雑であり、
#の認証は、複雑な、各サービスは、別々の認証が必要になります。                                                                                                                  #は、直接クライアントとマイクロ・サービスの通信は、その後、再構築が実現するのは困難になる場合、再分割マイクロサービスである必要があり、プロジェクトの反復で、再構築することは困難である。
いくつかのサービスは、他のマイクロを使用することができます契約は、直接アクセスが困難になります。
これらの問題は、マイクロサービスゲートウェイの手段によって解決することができます。マイクロサービスゲートウェイは、クライアントとサーバとの間に中間層を介在されている、すべての要求は、ゲートウェイにサービスを提供する外部のマイクロ通過します。

2、Zullプロフィール

Zuulは、オープンソースNetflixのマイクロサービスゲートウェイである、と彼はユーレカ、リボン、Hystrixおよびその他のコンポーネントを組み合わせて使用できます。:Zuulのコアコンポーネントは、これらのフィルタは、以下の機能を実行することができ、一連のフィルタです
:#アイデンティティ認証とセキュリティの各リソースの識別検証の要件を、そして一貫性のないこれらの要求を拒否し、
#のレビューと監視:監視要求サービスの負荷を。
#動的ルーティング:異なるバックエンド・クラスタに動的ルート要求;
#ストレス試験:性能を理解するために、クラスタへのトラフィックを増加させる;
#負荷分散:負荷の種類ごとに割り当てられた容量に対応し、そして限界値は廃止超えています要求;
#静的応答処理:内部クラスタに転送を避けるために応答するエッジ位置、;
#多地域柔軟性:クロスドメインルーティング要求はELB(ElasticLoadバランス)多様の用途を達成するように設計された領域をAWS;
Zuulの春は、クラウドを統合されていますそして、強化。
Zuulを使用した後、アーキテクチャは、フォームの進化を図:

3、Zuulゲートウェイ統合

  (1)サブモジュールtest_manager、のpom.xml依存ユーレカクライアントとzuulの導入を作成します

<dependencies>
   <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring‐cloud‐starter‐netflix‐eureka‐client</artifactId>
   </dependency>
   <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring‐cloud‐starter‐netflix‐zuul</artifactId>
   </dependency>
</dependencies>

  (2)application.ymlを作成します

server:
  port: 9011
spring:
   application:
     name: test‐manager #指定服务名
eureka:
  client:
    serviceUrl: #Eureka客户端与Eureka服务端进行交互的地址
      defaultZone: http://127.0.0.1:6868/eureka/
  instance:
    prefer‐ip‐address: true
zuul:
  routes:
    test‐gathering: #活动
      path: /gathering/** #配置请求URL的请求规则
      serviceId: tensquare‐gathering #指定Eureka注册中心中的服务id
     test‐article: #文章
      path: /article/** #配置请求URL的请求规则
      serviceId: tensquare‐article #指定Eureka注册中心中的服务id
     test‐user: #用户
      path: /user/** #配置请求URL的请求规则
      serviceId: tensquare‐user #指定Eureka注册中心中的服务id

(3)は、クラスの書き込みを開始します 

@EnableZuulProxy
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

4、Zuulフィルタ 

単純なフィルタを作成しますzuul

@Component
public class WebFilter extends ZuulFilter {

    @Override
    public String filterType() {
        return "pre";// 前置过滤器
    }
    @Override
    public int filterOrder() {
        return 0;// 优先级为0,数字越大,优先级越低
    }
    @Override
    public boolean shouldFilter() {
        return true;// 是否执行该过滤器,此处为true,说明需要过滤
    }
    @Override
    public Object run() throws ZuulException {
        System.out.println("zuul过滤器...");
        return null;
    }
}

スタートZuulサービスは、フィルタが実行されたことがわかります
のfilterTypeを:次のように、zuulに四つの異なるライフサイクルを、フィルタの種類を表す文字列を返しフィルタタイプの定義:

  • 前:リクエストがルーティングされる前に、呼び出すことができます
  • ルート:ルートが呼び出されたときに要求
  • ポストは:ルートとフィルタエラーが発生した後に呼び出され
  • エラーは:要求の処理中にエラーが発生したときに呼び出されます

filterOrder INT配列行うことにより、フィルタを定義する
shouldFilterは:フィルタは、この関数は、フィルタを切り替えることによって達成することができるように、実行されるべきかどうかを決定するブール値を返します。フィルタは常にアクティブであるので、上記の例では、我々は直接、trueを返します
実行:指定された論理フィルタを。 

ゲートウェイサービスは、各マイクロサービスの背面に集中するために、業務に関連した電流制限はないが、彼らのビジネス・サービスを行うことができ、認証、単にフィルタリング、事前にサービス、配信サービスを行うことができますので、これまでZuulが完了導入されています。

 

 


 

公開された41元の記事 ウォン称賛47 ビュー30000 +

おすすめ

転載: blog.csdn.net/u014526891/article/details/87476236