본문 바로가기

MSA (MicroServiceArchitecture)/Eureka & Spring Cloud Gateway

MSA 구성정리 with Eureka, Spring Cloud GW

# Eureka와 SpringCloudGateway까지 정리된 구성은 아래와 같다.

- 들어가기에 앞서, 일단 zuul과 SpringCloudGateway간의 비교를 먼저 해보면 좋을거 같다.

현재 스프링에서는 SCG를 권고하고 있는데 이유는 관리문제, 동기 비동기문제 등 여러가지가 있는데

일단 스프링에서 추천을 SCG로 했으니 SCG를 표준으로 쓰는게 맞는거 같다.

간단하게 zuul과 SCG를 비교한 표는 아래와 같다.

Eureka_SpringCloud_Workflow.drawio
0.07MB

- Worflow를 그려보면 아래와 같다.

물론 아래의 구성은 카프카 및 docker 컨테이너 환경이 적용이 안된 상태이다.

간단하게 그려보면 아래와 같다.

- 위의 workflow를 번호 순서대로 설명을 해보면 아래와 같다.

① 유저이다. 실제 접속 환경은 간단하게 표현을 해서 위와 같이 표현이 되었지만 앞단에 api gw가 한두개는 더 있을거다.

①-① 스프링 필터이다. 스프링 클라우드 GW 프로젝트에 필터 코드를 적용하여 실제 프로젝트에 접근 하기 전에 사전 작업을 적용 할 수 있다.

② Spring Cloud GW 프로젝트이다. 해당 프로젝트에서 LoadBalancer 기능이 적용되어 FirstProject와 SecondProject로 트래픽을 분기해준다.

③ FirstProject이다. Spring Cloud GW에서 분기된 트래픽이 FirstProject로 이동하여 Controller에서 처리된다.

④ SecondProject이다. Spring Cloud GW에서 분기된 트래픽이 SecondProject로 이동하여 Controller에서 처리된다.

ⓜ Spring Eureka에서 해당 스프링 프로젝트를 관리한다. 관리 화면을 제공하고 기본 정보를 제공한다. 30초를 기점으로 정보는 새로고침 된다.

ⓟ P라고 표시된 항목은 Spring 프로젝트를 의미한다. 개별 프로젝트로 생성되어 동작한다.

- 아래는 위에서 적용한 프로젝트를 Postman에서 호출했을때의 결과와 Eureka 관리자 페이지를 나타낸다.

- 위의 workflow의 구성대로 구현한 프로그램을 구동하면 위와 같은 결과를 얻을 수 있다.

- 추후에는 kafka와 같은 비동기 서비스를 적용하고 k8s등에 얹혀서 해당 프로그램을 실행하면 기본적인 InnerArhitecture와 OuterArchitecture에 대한 이해도가 많이 올라갈거 같다.

위의 GIF는 화질이 좋지않아 MP4 버전의 영상도 아래에 첨부한다.

- GitHub에 해당 코드를 업로드 해놓았다.

https://github.com/stars/Nanninggu/lists/msa-code-list

 

Nanninggu's list / MSA-Code-List

Eureka-SpringCloud-CodeList

github.com

- 끝 -

'MSA (MicroServiceArchitecture) > Eureka & Spring Cloud Gateway' 카테고리의 다른 글

MSA (LoadBalancer 실행)  (0) 2023.03.30
MSA (LoadBalencer를 위한 설정)  (0) 2021.06.18
MSA (LoggingFilter)  (0) 2021.06.18
MSA (GlobalFilter)  (0) 2021.06.18
MSA Spring (CustomFilter)  (0) 2021.06.18