본문 바로가기

MSA5

[MSA 5편] API Gateway Service 정리 목차는 MSA 에 있습니다. 나중에 찾아보기 위해 정리했습니다. 내용을 계속해서 추가할 예정입니다. [MSA 5편] API Gateway Service 정리 API Gateway 란? 모든 클라이언트의 요청에 대한 엔드포인트를 받아주는 서버 입니다. 왜 이런 구조가 나왔을까요? Client 에는 다양한 것들이 있습니다. 핸드폰, PC 등 다양한 Client 들이 직접적으로 MSA 서비스들을 호출한다면 시스템 간의 결합성이 강해집니다. 이렇게 된다면 MSA 서비스가 변경되는 순간 연결돼있는 Client 단말들은 전부 변경해야할 수도 있습니다. 시스템간 결합을 끊기 위해 API Gateway 가 나왔으며, 이외에도 공통적인 기능을(인증, 전문 변환 등) 처리할 수 있는 역할을 담당하고 있습니다. Zuul s.. 2022. 9. 21.
[MSA 4편] Service Discovery (Eureka) 목차는 MSA 에 있습니다. 나중에 찾아보기 위해 정리했습니다. 내용을 계속해서 추가할 예정입니다. [MSA 4편] Service Discovery (Eureka) Service Discovery 란? MSA 환경에서는 도메인 별로 서버가 나뉘기에 서버가 추가되거나 삭제되는 등의 작업이 빈번하게 발생합니다. 그에 따라 매번 소스에 하드코딩해서 서버 정보(IP, PORT 등) 을 변경할 수는 없습니다. Service Discovery 는 도메인 별 서버 정보를 가지고 있는 상태에서 클라이언트에서 특정 서비스를 요청할 때, IP 와 PORT 를 제공합니다. Eureka Service Discovery 중 하나인 소프트웨어 입니다. 특정 서비스에 대한 서버 정보들을 관리하여 로드밸런싱 및 장애 처리 기능을 가.. 2022. 8. 20.
[MSA 3편] CQRS 정리 목차는 MSA 에 있습니다. [MSA 3편] CQRS 정리 CQRS 란? Command and Query Responsibility Segregation 명령을 처리하는 책임과 조회를 처리하는 책임을 분리시키는 것입니다. 나오게 된 배경 프로그램을 개발하다보면 도메인 모델의 복잡도가 증가하게 됩니다. 이는 유지보수성을 힘들게 하고, 요구사항이 추가될 때마다 변화에 유연하지 못합니다. 하나의 Table 에 대해 각종 DTO 등이 점점 증가하게 되고 이를 해결하기 위해 CQRS 가 나왔습니다. 첫번째 사례 동일한 Database 에 조회 하는 Model 과 CUD 하는 Model 을 분리하는 것입니다. REST API 를 예로 들어보면 조회하는 Api 를 담당하는 controller 를 QueryContro.. 2022. 8. 3.
[MSA 2편] 보상 트랜잭션 (SAGA 패턴) 목차는 MSA 에 있습니다. [MSA 2편] 보상 트랜잭션 (SAGA 패턴) MSA 보상 트랜잭션이란? commit 한 데이터나 이미 반영한 데이터를 보정하는 트랜잭션입니다. 어떤 상황에 사용하는게 좋은가? 분산 환경에서 여러 api 끼리 통신을 하면 서로 다른 DB 에 일관성있게 데이터를 변경해야하는 경우가 생깁니다. 한 번에 성공하면 문제가 없겠지만 일부라도 실패하면 rollback 을 해야하는 경우가 생깁니다. 이런 경우에 사용합니다. SAGA 분산 트랜잭션 환경에서 보상 이벤트를 발생시킴으로써 원자성을 보장하는 패턴입니다. SAGA 패턴 방식 1 발생한 서비스에 대해 롤백을 할 수 있는 서비스를 실행시키는 것입니다. 외부 연동의 서비스의 경우 이런 방법을 택해야할 수 있습니다. 예를 들면, 비행기.. 2022. 6. 11.