Java を使用して Zuul に基づく API ゲートウェイ アプリケーションを開発する方法
マイクロサービス アーキテクチャの台頭により、API ゲートウェイはマイクロサービス アーキテクチャで重要な役割を果たします。重要な役割。クライアント要求を受信し、その要求を対応するバックエンド サービスに転送する役割を果たします。実際の開発では、オープンソース API ゲートウェイ サービスとして Zuul を使用すると、安定した効率的な API ゲートウェイ アプリケーションを迅速に構築できます。この記事では、Java を使用して Zuul に基づいた API ゲートウェイ アプリケーションを開発する方法を紹介し、具体的なコード例を示します。
まず、プロジェクトの pom.xml ファイルに Zuul の依存関係を追加する必要があります。
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency>
次に、Zuul ゲートウェイ アプリケーションを構成して開始するためのスタートアップ クラスを作成する必要があります。 @EnableZuulProxy
アノテーションをこのクラスに追加して、アプリケーションが Zuul サーバーとして機能する必要があることを示します。
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.zuul.EnableZuulProxy; @SpringBootApplication @EnableZuulProxy public class ApiGatewayApplication { public static void main(String[] args) { SpringApplication.run(ApiGatewayApplication.class, args); } }
次に、Zuul のルーティング ルールを構成する必要があります。 application.yaml (または application.properties) 構成ファイルに、次の構成を追加します。
zuul: routes: my-service: path: /my-service/** serviceId: my-service
この構成ファイルは、/my-service/**
で始まるリクエストが転送されることを指定します。 my-service
という名前のサービスに。
次に、API ゲートウェイからのリクエストを処理するための単純なコントローラー クラスを作成できます。 @RestController
アノテーションをコントローラー クラスに追加して、それが Restful スタイルのコントローラーであることを示します。
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class GatewayController { @GetMapping("/") public String gateway() { return "Hello from API Gateway!"; } }
上記の構成と実装により、Zuul をベースとした API ゲートウェイ アプリケーションの開発が完了しました。これで、アプリケーションを起動し、http://localhost:8080/my-service/
にアクセスして、API ゲートウェイが適切に動作していることを確認できます。すべてが正常であれば、出力 Hello from API Gateway!
が表示されます。
単純なルーティングと転送に加えて、Zuul は負荷分散、サービス フィルタリング、リクエスト フロー制限など、他の多くの機能も提供します。これらの機能は、Zuul フィルターを追加することで実現できます。例としてフィルター順序を PRE
、ROUTING
、POST
とすると、クラスを作成し、ZuulFilter
インターフェイスを実装して定義できます。私たちのフィルター。
import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.context.RequestContext; import org.springframework.stereotype.Component; @Component public class MyFilter extends ZuulFilter { @Override public String filterType() { return "pre"; } @Override public int filterOrder() { return 1; } @Override public boolean shouldFilter() { return true; } @Override public Object run() { RequestContext ctx = RequestContext.getCurrentContext(); ctx.addZuulRequestHeader("Authorization", "Bearer my-token"); return null; } }
上記のコードは、すべてのリクエストが発行される前に、コンテンツ Bearer my-token
を含む Authorization
という名前のリクエスト ヘッダーを追加します。このようにして、認証情報をリクエストに追加できます。
上記の手順により、Zuul に基づいた API ゲートウェイ アプリケーションの開発に成功し、基本的なルーティング、転送、フィルタリング機能を実装しました。もちろん、これは Zuul の機能と使用法のほんの一部にすぎません。 Zuul のドキュメントをさらに詳しく調べて、Zuul の高度な機能と使用法について学び、独自のニーズに応じて構成および開発することができます。
この記事が、Zuul を理解し、API ゲートウェイ アプリケーションを開発するために使用するのに役立つことを願っています。ご質問やご不明な点がございましたら、メッセージを残してください。 Zuul を使用した API ゲートウェイ アプリケーションの開発が成功することを祈っています。
以上がJava を使用して Zuul ベースの API ゲートウェイ アプリケーションを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。