반응형

분산어플리케이션 2

[MSA] SAGA 패턴 이해하기 : 개념, 정의

SAGA 패턴이란? : 분산 어플리케이션(Ex. MSA)의 일관성을 유지하고 여러 마이크로 서비스 간의 트랜잭션을 조정하여 데이터 일관성을 유지하는 데 도움이 되는 장애 관리 패턴이다. 더보기 기존의 모놀리식(Monolithic) 환경에서는 DBMS가 기본적으로 제공해주는 트랜잭션 기능을 통해서 데이터 Commit / Rollback을 통해서 일관성있게 관리되었다. 하지만, 점차 DB나 어플리케이션이 분산되면서 해당 트랜잭션 처리를 단일 DBMS에서 제공하는 기능으로는 해결할 수 없어졌다. 이에 따라, 데이터 일관성을 유지하는 데 도움을 주는 여러 패턴이 나왔다. SAGA 패턴을 알기 전에 - Two-Phase Commit Two-Phase Commit은 여러 서비스 간에 트랜잭션 처리 중 데이터 일관성..

[IT]/MSA 2022.04.05

[MSA] CQRS 패턴 이해하기 (명령과 조회의 책임 분리) : 정의, 사용목적, 적용예제

CQRS (Command and Query Responsibility Segregation)_명령과 조회의 책임 분리 : 명령 (시스템 데이터 변경-CREATE, UPDATE, DELETE)역할을 수행하는 구성요소와 쿼리(시스템 데이터 조회-READ) 역할을 수행하는 구성요소를 나누는 것. 즉, 시스템 데이터를 변경하는 코드와 시스템 데이터를 조회하는 코드를 따로 만드를 것이다. 구현방식이나 시스템 규모에 따라서 DB를 나누거나, 프로세스를 나누기도 한다. 명령과 조회는 왜 분리할까? 일반적으로 어플리케이션은 데이터를 한 Model로써 관리하며 한 모델에서 생성(CREATE), 조회(READ), 수정(UPDATE), 삭제(DELETE)한다. 이럴 경우, 속성(컬럼) 하나 혹은 여러개가 추가되면 어떨까? ..

[IT]/MSA 2022.04.04