記事のディレクトリ
1.何ですか
Zuulフィルタは、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.プロジェクトのフレームワーク
- 高可用性のゲートウェイを達成することができますnignxのロードバランシングを使用し、プロキシ技術を逆転
- zuulゲートウェイに自動的に統合されたリボンクライアントは、リバースプロキシルーティングを実現します
6. zuulとの違いを装います
両方のアプリケーションレベル並びに原理は同じではありません。
- zuul アプリケーション全体の流入口を、そのようなnginxの作用と見なすことができるアプリケーション、ウェブページ、および異なるマイクロプロセッシングモジュールの異なるサービスに要求を転送、などのすべての要求を受信するステップと、
- ふりサービスインターフェースの吸引微小電流部分が露出し、サービス、主に使用されるサービスとの間のサービスコール各マイクロ
- zuulもhystrixとリボン、HTTPベースの通信、ライン上で直接プロキシサービスが含まれています。それの間と装うサービスを向上させるにだけ、特別な意味を通信の消費量が増加しません。互いのライン上のサービスコールは、RPC通信を模倣することができたときに装います。
- 以下のために主に装うサーバ側のフロー制御、装うのロードバランシングは、ユーレカの認識に基づいています
- Zuulは、主のために、クライアントのユーレカZuulと組み合わせたフロー制御と負荷分散の使用のよりよいやすさを実現し、Zuul私は一般的に、第三者のアクセスインターフェイスを提供するために使用します。
差7.zuulとnginxの
同じポイント:
- ゲートウェイの効果を達成するために、ロードバランシング、リバースプロキシ、フィルタ要求を実装
異なる点
- nginxのC言語を使用して、zuul使用してJava言語
- nginxのサーバーの負荷分散を実現し、リボン+ユーレカを使用してzuulは、クライアント・ロード・バランシングを実現
だから我々は唯一の(学ぶことは、自分の使い慣れた言語発達を使用して、簡単に)ので、zuul選択します。
- すべてのサービスのzuulセッションが傍受することができます
- zuulは、セキュリティ制御を実現することができ、統一された例外処理、XXS
- アクセス制御、ブラックリストやホワイトリスト、パフォーマンスの監視、ログ印刷