SpringCloudGateway、zuulサービスゲートウェイ研究概要

ゲートウェイ技術の比較

cloud-netflix-zuul(zuul 1.x) Spring クラウド ゲートウェイ ズール 2.x
cloud-netflix-zuul(zuul 1.x) Spring クラウド ゲートウェイ ズール 2.x
メンテナンスとコミュニティ 更新停止、現状維持、Spring コミュニティが活発、公式ドキュメントが少なすぎる 継続的で活発なコミュニティ、中国語と英語の両方のドキュメント 情報は限られており、基本的にはNetflixの公式、英語のドキュメントに記載されています
エコロジー クラウドエコロジー、新しいバージョンはサポートされなくなりました(Eurekaのみが残ります) クラウド エコロジーは Netflix に限定されません。コンポーネント統合のサポートがより便利に クラウドエコロジーをサポートせず、Netflix ネイティブコンポーネントをサポート
可用性 クラスタ展開 + 登録センター クラスタ展開 + 登録センター
サポート機能 電流制限、サーキット ブレーカー、リトライ、ロード バランシング (関連コンポーネントの統合が必要) Groovy ダイナミック ローディング フィルター監視 (アクチュエーター) ビルトイン: ルート書き換え、電流制限、サーキット ブレーカー、より柔軟な動的ルーティング (リクエストの内容をアサート、フィルターはグローバルまたはローカル ルーティングにすることができます) より柔軟なグレースケール モニタリング (アクチュエーター) コア機能Netty 接続プール管理 アダプティブ リトライ、リクエスト トライなどGroovy 動的ローディング フィルタ
機能をサポートしていません 長い接続、websocket ルートの書き換え動的ルートを監視する必要がある Apollo 構成のリフレッシュ グレースケール (eureka メタデータ マーキング + フィルター) 動的ルーティングは、Apollo 構成の更新を監視する必要があります トークン バケットの現在の制限ルーティングの書き換え
使いやすさ 使いやすい 使いやすい (公式の組み込みフィルター、多くのアサーション、すぐに使える高い使いやすさ) Springとの統合に難があり、柔軟な使い方ができない
スケーラビリティ フィルター: pre、post、route、error アプリケーションはコードを渡す必要があります predicate, filter (global) = custom configuration custom predicate, filter は、名前プレフィックスを介して構成ファイルまたは構成センターに適用できます フィルター(sync & asnyc):incoming、endpoint、outgoing
管理インターフェース Spring Boot 管理者は表示のみ可能 (アクチュエータ ポートへのアクセス) Spring Boot Admin (アクチュエータ ポートに接続) は、制限付きのクエリと変更をサポートします。詳細については、以下を参照してください。
企業インフラサポート 互換性 Spring Framework 5.0 & Boot 2.x に基づいています。同社のインフラストラクチャは Boot 1.5 に基づいており、Framework 4.x を直接使用することはできません。単純な使用では、関連するコンポーネントの互換性を無視できます。そうでなければ、インフラを前提に、研究費が必要です。 Spring Cloud システムとの互換性がなく、開発コストがかかります。

Spring Boot 管理動的ルーティング

ルーティング クエリと変更自体のサポートは、 Spring Cloud Gateway によって提供されるアクチュエータ インターフェイス ( Spring Cloud Gateway ) に基づいています。

image2021-11-29_15-26-32.png
簡単に使用できますが、欠点も非常に詳細です。

  • 低重大度: 使用構文は Json であり、構成使用ほど単純ではありません

  • 低重大度: ゲートウェイ関連の機能のみが使用され、ゲートウェイ サービスのルーティング関連のアクチュエータ インターフェイスのみを開く必要があります。

  • 中程度の重大度: ユーザー エクスペリエンスの観点から、単純な使用をサポートします。一般的な視聴と操作の経験

  • 中程度の重大度: バージョン管理がなく、ロールバックまたは履歴ルートを表示する方法がありません。

  • 中程度の重大度: 構成とレジストリのルートを変更または削除できません. 管理者インターフェイスで追加されたルートのみを削除できます (変更することはできません, 最初に削除してから追加することはできません).

  • 高重大度: 管理者に追加されたルートは通常メモリに保存され、再起動後に失われます。

  • 重要度高: 1 回のクリックでルーティングの変更をすべてのインスタンスに発行することはできません。1 回の操作で変更できるのは 1 つのインスタンスのみです。

image2021-11-29_15-54-20.png

スケーラビリティ:

  • データソース変更可能:拡張ルートデータソース取得クラスRouteDefinitionRepository,从可靠数据源中获取
  • 元のアクチュエータ更新インターフェイスを変更し、新しいルートをデータ ソースに書き込みます。(記録のために、検証が可能かどうか:新しいインターフェースを追加しますが、管理フロントエンドを変更する必要があります)
  • ルート リフレッシュ メッセージはすべてのインスタンスに伝播されます。
    • 関連メッセージ コンポーネントのサポート
    • インスタンスはデータソースの変更を監視します (短期的にはデータベースを通常のクエリに使用でき、長期的には Redis と同様の監視機能を持つデータソースを使用でき、データベースは完全にカバーされます)
    • フロントエンドはすべてのインスタンスに通知します (大したことではありません)

付録 1: ゲートウェイのバージョン

サポートされているバージョン: Spring Framework 5.x、SpringBoot 2.x 以降

画像

参考

Spring クラウド ゲートウェイ

春の雲 ネットフリックス ズール

ホーム · Netflix/zuul Wiki · GitHub

おすすめ

転載: blog.csdn.net/jiangxiayouyu/article/details/122369771