[댕댕어디가] MSA 아키텍처 전환기(3) - API Gateway 구현
·
댕댕어디가 프로젝트/MSA
1. API Gateway란 ?마이크로서비스 아키텍처에서 클라이언트와 백엔드 서비스 간의 중간 계층 역할을 하는 서버입니다. API Gateway는 클라이언트 요청을 받아 여러 마이크로서비스로 라우팅하고, 요청에 대한 인증, 로깅, 트래픽 관리 등의 작업을 수행합니다. 2. API Gateway 라이브러리API Gateway 를 구현할 수 있는 라이브러리에는 Netflix Zuul과 Spring Cloud Gateway가 있습니다. 아래와 같이 두 라이브러리의 각 장단점이 있습니다. 특징Netflix ZuulSpring Cloud Gateway프로세싱 모델블로킹 방식비동기 및 논블로킹 방식성능고부하 환경에서 병목 가능성 있음고성능 및 확장성 제공설치 및 설정복잡할 수 있음간단하고 직관적지원 상태유지보수 ..
[댕댕어디가] MSA 아키텍처 전환기(2) - Service Discovery 패턴/ 서비스 분리
·
댕댕어디가 프로젝트/MSA
| 해당 글은, 문제 해결 경험을 기록하는 글이기 때문에, 개념 및 원리에 대해 구체적으로 설명하지 않습니다. 1. Service Discovery 패턴이란?MSA 서비스간 통신시, 각각 IP와 Port가 달라 매번 수동으로 관리해줘야 하는 불편함이 있으며, 이를 위해 각 서비스의 IP와 Port에 대해 저장하고 관리하는 것을 말합니다. 서비스의 IP와 Port는 Service Registry에 저장 및 관리됩니다. 2. 구현 방법구현 방법에는 아래 두가지 방법이 있습니다.  1) Client-Side Discovery Pattern서비스 클라이언트가 Service Registry에서 서비스의 위치를 찾아서 호출하는 방식 2) Server-Side Discovery Pattern호출되는 서비스 앞에 로드..
[댕댕어디가] MSA 아키텍처 전환기(1) - MSA 전환 이유
·
댕댕어디가 프로젝트/MSA
이번에 댕댕어디가 서비스를 MSA 아키텍처로 전환해보고자 합니다. 1. 댕댕어디가 서비스란 ?반려동물 동반 가능 장소 추천 서비스로, 반려동물 동반 가능한 장소를 검색할 수 있고 맞춤 추천 및 땅따먹기 기능을 통해 반려동물과의 새로운 재미를 즐길 수 있는 서비스입니다. LG 유플러스 부트캠프 과정에서 최종 프로젝트로 진행하게 되었고, 저는 팀장 및 백엔드 개발을 담당하게 되었습니다. 2. 기존의 아키텍처기존의 아키텍처는 모놀리식으로 구성되어있고, 별도로 알림 서버가 구성되어 있습니다. 알림서버만 따로 분리한 이유는 알림 생성에만 집중하고 FCM과 같은 외부 API로 인한 장애가 주요 기능에 미치지 못하게하기 위함입니다. 3. MSA 아키텍처로 전환하는 이유프로젝트를 진행하며 MSA 아키텍처의 필요성을 느..