Spring Cloud Gatewayとは?
Spring Cloud Gatewayは、Spring BootフレームワークとSpring Cloudプロジェクトの一部であるAPIゲートウェイで、シンプルかつ効果的な方法でAPIへのルーティングを提供し、セキュリティ、監視/メトリクス、回復力などの横断的な関心事をAPIに提供することを目的としている。
主な機能
- ルーティング: さまざまな条件に基づいてリクエストを適切なサービスにルーティングする
- フィルター: リクエストとレスポンスを処理するフィルターを適用できる
- 認証と認可: OAuth2、JWTなどの認証と認可メカニズムをサポートする
- 監視: Prometheus、Micrometerなどのツールを使用してAPIの使用状況を監視できる
- サーキットブレーカー: 障害が発生したサービスへのリクエストを自動的に遮断し、システム全体の安定性を保つ
APIゲートウェイとは?
APIゲートウェイは、複数のAPIをまとめて管理するためのプラットフォームで、APIの開発、公開、保護、監視を容易にし、開発者とバックエンドサービス間の仲介役として機能する。
主な機能
- APIの公開と管理: APIを安全かつ効率的に公開し、バージョン管理や認証、アクセス制御などの機能を提供する
- セキュリティ: APIへのアクセスを制御し、悪意のある攻撃から保護する
- 監視と分析: APIの使用状況を監視し、パフォーマンスやエラーを分析する
- 開発者向けツール: APIの開発とテストを容易にするツールを提供する
プロジェクトを作成する
Project: Maven
Language: Java
SpringBoot: 3.2.4
Group: dev danvega
Artifact: gateway-demo
Name : gateway-demo
Description: SCG Demo
Package name: dev danvega gateway-demo
jar 21
Dependencies
Gateway
コードを編集する
①resources/application.properties ⇨ application.yamlに名前を変更し、編集する
spring:
cloud:
gateway:
routes:
- id: posts-route
uri: http://localhost:8081
②下記のコードを追記する
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
<version>3.1.2</version>
</dependency>
参考サイト
Building an API Gateway in Java with Spring Cloud Gateway
Spring Cloud Gatewayで流量制限をかける