본문 바로가기
MSA/MSA관련기술

MSA 정리

by 문자메일 2022. 10. 14.

 

 

API Gateway

API Gateway가 필요한 이유 : API Gateway 같은 단일 진입점 없이 Client에서 직접 MicroService를 호출하게 된다면 마이크로 서비스가 생성/삭제/변화될때마다 Client에서 MicroService의 URL의 수정이 필요하게 되는 문제가 발생한다.

그래서 클라이언트에서는 서비스 단일 진입점인 API Gateway로만 서비스 요청하고, API Gateway에서 Client가 요청한 서비스를 파악하여 해당 MicroService를 연결하여 준다.

 

API Gateway 사용할 때 특징 및 장점

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

-> 위 사항 모두 단일 진입점 서버에서 구현되는게 효과적인 기능들 

 

 

https://charactermail.tistory.com/390?category=1128836 

 

Spring Cloud Gateway (api gateway)

1. Spring Cloud Gateway 의존성 추가 2. application.yml 설정 eureka.client.fetch-registry=true는 유레카 서버로부터 인스턴스들의 정보를 주기적으로 가져올 것인지를 설정하는 속성임. true로 설정하면 갱..

charactermail.tistory.com

 

 

 

Service Discovery

Spring Cloud Netflix Eureka

 

모든 마이크로 서비스는 spring cloud netflix eureka에 등록한다.

유레카의 역할은 서비스 디스커버리

외부에서 다른 서비스들이 마이크로 서비스를 검색하기 위하여 사용되는 개념 (전화번호 책)

 

유레카 서버의 역할

유레카 서버에 마이크로 서비스들에 대한 등록의 작업

유레카 서버에서 마이크로 서비스들의 검색에 대한 작업 수행

 

 

클라이언트가 API Gateway에 필요한 요청정보 전달하면, 요청정보가 서비스 디스커버리에 전달되어 필요한 서비스를 제공받기 위하여 어떤 서버로 접근하면 되는지 반환해준다.

그러면 해당되는 마이크로서비스 서버 호출하여 결과 값 클라이언트에 return해준다.

 

 

 

넷플릭스 유레카 서버 생성 및 프로젝트 세팅 방법 아래 URL 참조

https://charactermail.tistory.com/387?category=1128836 

 

Spring Cloud Netflix Eureka 서버 설정

Spring Cloud Netflix Eureka 모든 마이크로 서비스는 spring cloud netflix eureka에 등록한다. 유레카의 역할은 서비스 디스커버리 외부에서 다른 서비스들이 마이크로 서비스를 검색하기 위하여 사용되는 개

charactermail.tistory.com

 

넷플릭스 클라이언트 서버 프로젝트 세팅 방법 아래 URL 참조

https://charactermail.tistory.com/388

 

유레카 클라이언트 설정

1. 유레카 클라이언트 의존성 추가 2. 유레카 클라이언트 어노테이션 등록 (@EnableDiscoveryClient) @SpringBootApplication @EnableDiscoveryClient public class UserServiceApplication { public static void main(String[] args) { SpringAp

charactermail.tistory.com

 

댓글