inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

FeignClient 예외 처리 ②

http client 및 아키텍처에 대한 질문입니다

215

bluerain

작성한 질문수 14

0

안녕하세요.
 
강의 예제와 같이 앞단에 api gateway가 있는 MSA 아키텍처로 구현된 서비스군(group)이 있고
외부의 특정 서비스가 특정 MSA 서비스와 server to server로 호출해야할경우에 어떻게 구현하는게 더 알맞는것일까요?
 
제가 드는 의문은 두가지입니다.
1. RestTemplate를 사용하는게 나을까? / FeignClient를 사용하는게 나을까?
2. api gateway로 호출하는게 나을까? discovery service쪽으로 호출하는게 나을까?
 
'MSA 아키텍처의 서비스 외부의 서비스가 MSA 서비스를 호출해야한다'는 상황에서 추천되는 방향이 있을까요?
고견 부탁드립니다.
 

spring-boot JPA architecture spring-cloud Kafka msa

답변 1

3

Dowon Lee

안녕하세요, 이도원입니다. 

외부의 서비스가 MSA로 구성된 서비스를 호출하는 부분에서는 API Gateway와 같은 Gateway를 통해 접근하는게 좋다고 생각됩니다. Service Discovery를 통해 MSA를 관리하는 것도 여러 서비스들을 등록/해제 상태를 관리함으로써 서비스 간의 통신을 원할하게 사용하는 데에 있습니다. 외부에 노출되는 부분을 단일 진입점을 만들어 사용하시는게 보안적인 측면에서도 좋습니다. 그리고 외부 시스템과의 통신에서도 RESTful API와 같은 방식으로 통신하시거나, gRPC 방식으로 사용하시면 될 것 같습니다. 

질문 하신 내용 중 

1. RestTemplate과 FeignClient 중에서는 선언적으로 다른 서비스를 명시해서 사용할 수 있는 FeignClient가 더 구현하기에는 수월할 것 같습니다. 어떤 것에 목적을 두고 구현하는냐에 따라 달라지겠지만, Error 핸들링을 위한 API도 제공하는 FeignClient를 추천합니다.

2. 외부에 있는 서비스에서 직접 Discovery Service에 접근한다는 의미인가요? API Gateway를 사용하는 목적은 위에서도 말씀드렸던 것 처럼 단일 진일점을 만들면서, 로깅이나, 인증과 같은 필요한 처리를 한쪽에서 처리할 수 있다는 장점이 있습니다. 그리고 외부의 서비스라 하면, 서비스하려는 MSA의 구성요소가 아닌 다른 환경인 경우가 많기 때문에, Service Discovery에 직접 접근하는 방식은 좋지 않다고 생각됩니다. 

감사합니다. 

kafka 업데이트 강의 듣고 시포요

0

85

1

강의 교안

0

75

1

마이크로서비스간 통신 시, 인증 처리

0

79

1

api gateway 에서 인증 처리

0

66

1

섹션 19 질문드립니다

0

53

1

강의 자료 업데이트

0

83

1

부하분산 강의 섹션

0

57

1

강의자료는 어디에서?

0

72

1

강의 자료는 어디서 다운 받을 수 있나요?

0

110

1

전체 사용자 조회시 오류

0

59

1

혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??

0

112

2

학습 방향

0

95

2

카프카 커넥터 사용 목적 문의

0

86

2

kafka 강의

0

108

2

서비스 디스커버리 종류

0

87

2

강의 자료에 대해서 궁금해요

0

117

2

GlobalFilter, LoggingFilter가 동작하지 않습니다.

0

90

2

Kafka Source Connect 버전 에러

0

85

2

소스커넥터는 사용안한 거 맞죠?

0

81

2

강의자료 업데이트 문의

0

96

2

강의에서 BCryptPasswordEncoder 에 역할(5-2)

0

56

1

강의 업데이트 계획이 궁금합니다.

0

113

2

MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)

0

162

2

어떤 것이 업데이트 된 건가요?

0

164

2