반응형
해당 내용은 인프런 이도원님의 "Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)"를 듣고 정리한 내용입니다.
1. Spring Cloud Gateway(SCG)란?
- API Gateway
- 서비스로 전달되는 모든 API요청의 관문 , Gateway 역할을 하는 서버
- 시스템의 구조를 내부로 숨기고 외부의 요청에 대해서만 응답하기 때문에 클라이언트는 약속한 형태의 API요청을 서버로 전달
- 인증/인가, L/B & 라우팅, 로깅, Circuit Breaker의 역할을 수행한다.
- Srping Cloud Gateway
- Spring에서 제공하는 Gateway로 Netflix Zuul을 대체.
- 특징
- 논블로킹(non-blocking), 비동기(Asynchronous) 방식의 Netty Server를 사용
- Reverse Proxy, 클라이언트의 요청을 받고 이 요청을 적절한 Backend 서보로 라우팅해주는 서버.
2. Spring Cloud Gateway 프로젝트 생성 및 설정
- 신규프로젝트 생성
- name : apigateway (원하는 이름으로 셋팅)
- maven 프로젝트로 설정 (이도원 강사님이 강의해서 Maven으로 진행하였기에 동일하게 설정)
- dependencies에는lombok , Eureka Discovery Client, Spring Cloud Gateway 선택
- 프로퍼티 설정
- server.port : 하나의 웹서비스처럼 서버 역할을 해야하므로 서버를 올리기 위한 port를 지정한다.
- spring.application.name : 어플리케이션 이름을 지정한다.
- spring.cloud.routes :
- id : 입력된 라우터의 고유 식별자 입력
- uri : 입력된 라우터의 주소 지정
- predicates : 설정된 path의 요청에 해당되는 경우 해당 라우터로 요청을 보내도록 한다.
server: port: 8000 spring: application: name: apigateway-service cloud: gateway: routes: - id: first-service uri: http://localhost:8081/ predicates: - Path=/first-service/** - id: second-service uri: http://localhost:8082/ predicates: - Path=/second-service/**
- Spring Cloud Gateway 실행
- appliation.yml routes에 설정된 uri로 접근 시 정상적으로 연결됨을 확인할 수 있다.
- http://localhost:8000/first-service/welcome/ 호출 시 Service Server인 First-Servicer가 호출된다.
반응형
'Backend > Spring Cloud' 카테고리의 다른 글
Spring Cloud Config Server (0) | 2022.06.23 |
---|---|
Spring Cloud Gateway - Load Balancer (0) | 2022.06.21 |
Spring Cloud Gateway Filter (0) | 2022.04.19 |
Spring Cloud Netflix Eureka - Client Load Balancer 설정 (0) | 2022.03.28 |
Spring Cloud Netflix Eureka - 개념 및 프로젝트 생성 (0) | 2022.03.25 |