Spring Cloud Gatewayの設定
🔨プロジェクトの作成
次の3つの依存性を追加して生成します.
これは、正常に動作していることを確認し、isがTomcat(同期)ではなくNetty(非同期)で動作していることを確認します.isがNettyで実行され、ゲートウェイサーバが非同期で実行されていることを確認できます.
🔨サービス1の作成
3つの依存性を追加してサービスを開始します.
2番のサービスもそっくり!(ポート番号が違うだけでOK)
2番サーバーも同じようにしています.
今からゲートウェイにお願いしましょう!
👏ゲートウェイ・サービス名によるリクエスト
しかし404にエラーが発生した.これは、ゲートウェイがサーバの要求に従って貼り付けられるサービス区別のための事前パスを追加したためです.
例えば、
要求マッピングをコントローラに設定する
方法は簡単です.
2つのサービスをそれぞれ呼び出し、正常な動作を確認します.彼をゲートウェイに呼びましょう
gatewayのみで2つのサービスが呼び出されると判断できます.
次の3つの依存性を追加して生成します.
server:
port: 8000
eureka: #eureka 세팅은 현재 사용 안함
client:
fetch-registry: false
register-with-eureka: false
service-url:
defaultZone: http://127.0.0.1:8761/eureka
spring:
application: #gateway service 이름름
name: apigateway-service
cloud:
gateway: #gateway 설정
routes:
- id: first-service #gateway로 연결될 서비스 이름
uri: http://127.0.0.1:8001/ #gateway로 연결될 서비스 uri
predicates: #gateway로 연결될 서비스의 url 매핑
- Path=/first-service/**
- id: second-service
uri: http://127.0.0.1:8002/
predicates:
- Path=/second-service/**
ymlファイルを設定したら、サーバーを実行してみます!これは、正常に動作していることを確認し、isがTomcat(同期)ではなくNetty(非同期)で動作していることを確認します.isがNettyで実行され、ゲートウェイサーバが非同期で実行されていることを確認できます.
🔨サービス1の作成
3つの依存性を追加してサービスを開始します.
server:
port: 8001
spring:
application:
name: first-service
eureka:
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://127.0.0.1:8761/eureka
ユリカはすぐには見ないけど、とりあえず設定しておきました.@RestController
public class HelloController {
@GetMapping("hello")
public String hello(){
return "hello first service";
}
}
次に、firstサービスに戻るための簡単なコントローラを作成します.2番のサービスもそっくり!(ポート番号が違うだけでOK)
2番サーバーも同じようにしています.
今からゲートウェイにお願いしましょう!
👏ゲートウェイ・サービス名によるリクエスト
しかし404にエラーが発生した.これは、ゲートウェイがサーバの要求に従って貼り付けられるサービス区別のための事前パスを追加したためです.
例えば、
/first-service/hello
が要求される場合、最初のサービス要求/hello
ではなく、/first-service/hello
である.要求マッピングをコントローラに設定する
方法は簡単です.
@RestController
@RequestMapping("/first-service")
public class HelloController {
@GetMapping("hello")
public String hello(){
return "hello first service";
}
}
@RestController
@RequestMapping("/second-service")
public class HelloController {
@GetMapping("hello")
public String hello(){
return "hello second service";
}
}
サービスごとにマッピングされたprepathをそのまま貼り付けるだけです.2つのサービスをそれぞれ呼び出し、正常な動作を確認します.彼をゲートウェイに呼びましょう
gatewayのみで2つのサービスが呼び出されると判断できます.
Reference
この問題について(Spring Cloud Gatewayの設定), 我々は、より多くの情報をここで見つけました https://velog.io/@ililil9482/Spring-Cloud-Gateway-설정テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol