SpringCloud(E)マイクロサービスゲートウェイZuul

1.はじめにゲートウェイZuul

Zuul一つでNetflixのOSSであり、JVMベースのルーティングおよびサーバロードバランサです。サービスフレームワークは、ルーティング、モニタリング、耐障害性、セキュリティ、および他の側面を提供します。ユーレカ、リボン、Hystrix他のコンポーネントとのZuul作品。

Zuulのコアは、我々のような拡張機能の多くをフィルタリングすることができ、それを通してフィルターです。

  • 1)動的ルーティングを動的にそのような集約されたデータやサービスリターン複数のようないくつかの処理を実行するために、異なるバックエンドサービスロジックにクライアント要求をルーティングします。
  • 2)リクエストモニタは、システム全体に要求、要求応答詳細なログ記録、リアルタイムのトラフィック統計情報を監視し、現在のシステムを監視することができます

状態制御。

  • バックエンドサービスを保護するために、すべての要求へのアクセス、拒否不正な要求で認証を行うための3)認証、認可。
  • 電力供給会社のいくつかは、主要なイベントの間、システムの安定性を確保するために、より現実的なユーザーの同時実行をシミュレートする必要があるように4)ストレステストストレステストは、非常に重要な仕事です。Zuulをすることで
    、動的バックエンドサービスをクラスタに要求を転送することができ、それはまた、いくつかの特別な治療を行うために、実際のテスト・トラフィックとトラフィックを識別することができます。
  • 5)発行の灰色のリリースでは、システム全体の安定性を保証することができたときに、調整の問題の影響度ということを確実にするために、初期のグレーで見つけることができます。

2.なぜゲートウェイzuulを使用

一般的に、異なるマイクロサービスは、異なるネットワークアドレスを持っているし、外部クライアントは、ビジネスニーズを完了するバイオが可能な複数のサービス・インターフェースを呼び出す必要があります。例えば、映画のチケットコレクションAPP、マイクロフィルムの分類サービス、ユーザーのマイクロサービス、少額決済サービスを呼び出すことができます。クライアントとマイクロサービスが直接通信する場合は、以下の質問があります:

  • #異なるマイクロサービスのための複数のクライアント要求は、クライアントの複雑さの増加に
  • #クロスドメインリクエストは、認証プロセスは、特定の複雑なシーンでは比較的複雑です
  • #各サービスは、別々の認証が必要です

3.手順は単純なプロセスです

指定されたマイクロゲートウェイを介してサービスにアクセスするためのフロントエンドプログラム。
ここに画像を挿入説明

4.Zuulゲートウェイ建物

(1)は、POMにMODUL追加の依存関係のMavenを作成します

<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)YMLプロファイルを追加します

server:
  port: 9998
spring:
  application:
    name: diplomaproject-managerzuul
eureka: #将此服务注册到eureka
  client:
    service-url:
      defaultZone: http://127.0.0.1:9999/eureka/
  instance:
    prefer-ip-address: true #可以跨域访问
zuul:
  routes:
    host:
      connect-timeout-millis: 15000 #HTTP连接超时大于Hystrix的超时时间
      socket-timeout-millis: 60000   #socket超时
    diplomaproject-person: #服务名称
      path: /user/** #配置请求url的请求规则
      serviceId: diplomaproject-person #指明eureka注册中心的服务id

(3)起動クラスを追加

@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
@EnableEurekaClient
@EnableZuulProxy //使用网关代理
public class ManagerZuulApplication {
    public static void main(String[] args) {
        SpringApplication.run(ManagerZuulApplication.class);
    }
}

(4)リブートユーレカネットワーク管理エージェント・サービスを開始

ここに画像を挿入説明

公開された77元の記事 ウォン称賛81 ビュー5868

おすすめ

転載: blog.csdn.net/qq_37356556/article/details/104882192