# Eureka와 SpringCloudGateway까지 정리된 구성은 아래와 같다.
- 들어가기에 앞서, 일단 zuul과 SpringCloudGateway간의 비교를 먼저 해보면 좋을거 같다.
현재 스프링에서는 SCG를 권고하고 있는데 이유는 관리문제, 동기 비동기문제 등 여러가지가 있는데
일단 스프링에서 추천을 SCG로 했으니 SCG를 표준으로 쓰는게 맞는거 같다.
간단하게 zuul과 SCG를 비교한 표는 아래와 같다.
- 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
- 끝 -
'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 |