【SpringCloud] Zuulルーティングゲートウェイ

1.何ですか

Zuulフィルタは、2つの主要な機能とにルーティング要求を含みます。

  1. ルーティング機能:特定のマイクロインスタンス上の外部サービスに要求を転送する責任は、それが外部からアクセス統合ポータルの基礎となっています
  2. フィルタリング:介入する要求を処理する責任は、チェックを要求し、そしてサービス・アグリゲータの他の機能の基礎であります

  Zuul統合とユーレカは、サービスがアクセスを介して取得された後Zuul後マイクロジャンプしていること、Zuulユーレカサービスガバナンスにおけるアプリケーション、ユーレカから他のマイクロメッセージングサービスへのアクセスとして自身を登録します

注意:Zuulは、最終的にユーレカに別のサービスとして登録


2.役割

  プロキシ+ルーティング+リバースプロキシ機能を実現するためにnginxの我々はすべてのことを知って、これらの三つの機能を理解していない場合は、3つの機能をフィルタリングするnginxのと組み合わせることができ、zuulもリバースプロキシ機能を達成するため、このブログは主うとしていますリバースプロキシは、それはまた、限り、あなたはサービスIDを設定することができますよう(組み込みリボン)をロードバランシング、アクセス制御の役割を持っています


3.プロジェクトの戦闘

3.1リードを頼ります

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>

3.2コンフィギュレーションファイル

server: 
  port: 9527  # zuul服务的端口号
 
spring: 
  application:
    name: microservicecloud-zuul-gateway   # 注册到Eureka上的服务的名称
 
# eureka配置
eureka: 
  client: 
    service-url: 
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka  
  instance:
    instance-id: gateway-9527.com
    prefer-ip-address: true 
 
# zuul配置 
zuul: 
	#在服务前统一加前缀
  prefix: /dmsd
	# 将真实的服务名称忽略
  #ignored-services: microservicecloud-dept   # 要隐藏的服务名称
  ignored-services: "*"  ,* 代表忽略所有的,即不能通过真实服务名路径访问,只能用替换会后的名,遵守单一入口原则
  routes: 
    mydept.serviceId: microservicecloud-dept   # 被隐藏的服务名
    mydept.path: /mydept/**    # 将服务名替换为此名

3.3起動時の構成スタートアップ項目

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

Zuulは、このサービスは、127.0.0.1がマップされ、成功の構築、およびローカルのhostsファイルを変更することですmyzuul.com
我々はサービスの入力を訪問する前に、次のとおりです。HTTP:// localhostを:8080 / DEPT / GET / 2 ;
しかし、使用してZuulルートを入力することである。http://myzuul.com:9527/microservicecloud-dept/dept/get/2 ;
Zuulルーティングプレフィックスと実際のサービス名を非表示を入力することができます。http://myzuul.com:9527/dbsd / mydept /部門/ GET / 2 ;


4.結論思考

  Zuulサービスを構築し、ユーレカへの登録、我々はアドレス(+ zuulマイクロサービス名+ URL)を入力するときにZuulはユーレカの情報やサービスを取得します。この時間は、に登録され、最初のZuulでアクセスしたいサービスを見つけ、その後、Zuul経路によってジャンプのアドレスにサービスにアクセスするには

5.プロジェクトのフレームワーク

  1. 高可用性のゲートウェイを達成することができますnignxのロードバランシングを使用し、プロキシ技術を逆転
  2. zuulゲートウェイに自動的に統合されたリボンクライアントは、リバースプロキシルーティングを実現します

6. zuulとの違いを装います

両方のアプリケーションレベル並びに原理は同じではありません。

  1. zuul アプリケーション全体の流入口を、そのようなnginxの作用と見なすことができるアプリケーション、ウェブページ、および異なるマイクロプロセッシングモジュールの異なるサービスに要求を転送、などのすべての要求を受信するステップと、
  2. ふりサービスインターフェースの吸引微小電流部分が露出し、サービス、主に使用されるサービスとの間のサービスコール各マイクロ
  3. zuulもhystrixとリボン、HTTPベースの通信、ライン上で直接プロキシサービスが含まれています。それの間と装うサービスを向上させるにだけ、特別な意味を通信の消費量が増加しません。互いのライン上のサービスコールは、RPC通信を模倣することができたときに装います。
  4. 以下のために主に装うサーバ側のフロー制御、装うのロードバランシングは、ユーレカの認識に基づいています
  5. Zuulは、主のために、クライアントのユーレカZuulと組み合わせたフロー制御と負荷分散の使用のよりよいやすさを実現し、Zuul私は一般的に、第三者のアクセスインターフェイスを提供するために使用します。

差7.zuulとnginxの

同じポイント:

  1. ゲートウェイの効果を達成するために、ロードバランシング、リバースプロキシ、フィルタ要求を実装

異なる点

  1. nginxのC言語を使用して、zuul使用してJava言語
  2. nginxのサーバーの負荷分散を実現し、リボン+ユーレカを使用してzuulは、クライアント・ロード・バランシングを実現

だから我々は唯一の(学ぶことは、自分の使い慣れた言語発達を使用して、簡単に)ので、zuul選択します。

  1. すべてのサービスのzuulセッションが傍受することができます
  2. zuulは、セキュリティ制御を実現することができ、統一された例外処理、XXS
  3. アクセス制御、ブラックリストやホワイトリスト、パフォーマンスの監視、ログ印刷

おすすめ

転載: blog.csdn.net/wrs120/article/details/91782432