마이크로서비스 설계 패턴은 작고 독립적으로 배포 가능한 서비스로 구성된 마이크로서비스를 효율적으로 개발하고 유지 관리하기 위한 일련의 원칙입니다.
MSA 가 유행이 되고 여러곳에서 사용하면서 몇가지 유용한 설계 패턴들이 생기기 시작했는데요,
오늘 소개해드릴 아티클은 이런 마이크로서비스 설계 패턴 중 대표적인 패턴 5가지를 소개하고 있습니다.
📌 API Gateway
API Gateway 는 마이크로서비스의 프런트엔드 역할을 하는 서비스로 클라이언트로부터 요청을 받아 적절한 서비스로 라우팅합니다.
📌 Circuit Breaker
Circuit Breaker 는 분산 시스템에서 실패를 감지하고 계단식 오류를 방지하는 데 사용됩니다.
과부하가 발생하면 회로를 차단하여 전기 장비의 손상을 방지하는 전기 회로 차단기처럼 장애가 발생한 시스템으로의 트래픽 흐름을 차단할 수 있습니다.
📌 CQRS (Command Query Responsibility Segregation)
CQRS 패턴은 읽기 및 쓰기 작업을 명령 모델과 쿼리 모델 두 가지로 분리합니다.
명령 모델은 쓰기 작업을 처리하고 시스템 상태를 업데이트하는 역할을 하고, 쿼리 모델은 읽기 작업을 처리하고 클라이언트에 데이터를 반환하는 역할을 합니다.
이를 통해 읽기 및 쓰기 작업을 하는 시스템이 복잡해지고 크기가 커져도 확장 및 유지 관리가 수월할 수 있도록 합니다.
📌 Event Sourcing
Event Sourcing 은 응용 프로그램의 상태를 일련의 이벤트로 모델링하여 저장 및 사용하는 패턴입니다.
애플리케이션의 현재 상태를 저장하는 대신 시스템은 일련의 이벤트를 저장하고 필요시 이를 읽어들여 애플리케이션의 상태를 업데이트 합니다.
📌 Saga Pattern
Saga 디자인 패턴은 분산 시스템에서 여러 서비스를 포함하는 여러 트랜잭션에서 일관성을 유지하는 데 사용되는 기술입니다.
데이터 일관성을 보장하는 방식으로 여러 서비스에서 분산 트랜잭션을 관리하는 데 사용됩니다.
공유드린 아티클에 5가지 패턴에 대한 자세한 내용이 정리되어있으니
관심있으신 분들은 한번 보시면 좋겠습니다.
https://medium.com/javarevisited/5-important-microservices-design-patterns-c4d636b0051