시작이 반

[MSA] Spring Cloud ( API Gateway ) 본문

Programming/MSA

[MSA] Spring Cloud ( API Gateway )

G_Gi 2021. 8. 2. 20:12
SMALL

https://happycloud-lee.tistory.com/207

API Gateway

API Gateway Service는 사용자가 설정한 라우팅 설정에 따라서 각각 엔드포인트로 클라이언트를 대신 요청하고 응답을 받으면 다시 클라이언트에 전달해 주는 프록시 역할을 한다.

서버단에 진입로(API Gateway)를 두고 각각의 마이크로 서비스로 요청되는 것들을 일괄적으로 처리한다.

클라이언트는 gateway만 상대한다.

  • 인증 및 권한 부여
  • 서비스 검색 통합
  • 응답 캐싱
  • 정잭, 회로 차단기 및 QoS다시 시도
  • 속도 제한
  • 부하 분산
  • 로깅, 추적, 상관 관계
  • 헤더, 쿼리 문자열 및 청구 변환
  • IP허용 목록에 추가

API Gateway Service - Project 생성

 

application.yml

server:
  port: 8000

eureka:
  instance:
    lease-renewal-interval-in-seconds: 1 #하트비트 인터벌
    lease-expiration-duration-in-seconds: 2 # 디스커버리는 서비스 등록 해제 하기 전에 마지막 하트비트에서부터 2초 기다림
    prefer-ip-address: true
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:8761/eureka

spring:
  application:
    name: apigateway-service
#  cloud:
#    gateway:
#      routes:
#        - id: #어플리케이션 이름
#          uri: #진입 주소
#          predicates: #조건

instance부분의 위에 2개 설정은 해당 서비스가 종료되면 디스커버리에 바로 삭제 되게 해주는 옵션으로 개발단계에서 편의성을 위해 넣었다.

 

eureka.instance.prefer-ip-address : 이 설정은 디스커버리에 등록된 서비스를 클릭했을때 ip address로 가게 해주는 설정이다.

 

아래 2개를 알아야 한다.

eureka.client.service-url : discovery 의 주소를 입력하여 해당 서비스를 등록한다.

spring.cloud.gateway : gateway를 통해 진입하는 서비스들을 등록할수 있다.

(아직은 만든 서비스가 없기 때문에 비워놈)

 

gateway-service를 실행하면

discovery 서버에 apigateway-service가 등록된 것을 볼 수 있다.

 

 

이제 Client가 서비스를 사용하면 API Gateway를 통해 해당 서비스로 진입이 가능하다.

 

<참고 : Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)>

LIST

'Programming > MSA' 카테고리의 다른 글

[MSA] Spring Cloud ( Service 등록 )  (0) 2021.08.04
[MSA] Spring Cloud ( Gateway Filter )  (0) 2021.08.03
[MSA] Spring Cloud ( Eureka Service Discovery )  (0) 2021.08.02
[MSA] Spring Cloud  (0) 2021.07.31
[MSA] MicroService Architecture  (0) 2021.07.30