본문 바로가기

MSA5

[MSA] Saga 패턴을 통한 분산DB 트랜잭션 출처 크리스 리차드슨이 저술한 'Microservices Patterns with Examples in Java' 의 번역본인 '마이크로서비스 패턴' 책을 정리한 내용입니다. (https://product.kyobobook.co.kr/detail/S000001834349) 마이크로서비스 패턴 | 크리스 리처드슨 - 교보문고 마이크로서비스 패턴 | 모놀리식 애플리케이션을 마이크로서비스 아키텍처로 성공적으로 전환하는 방법!마이크로서비스 아키텍처 기반의 애플리케이션을 성공적으로 구축하려면 새로운 아키 product.kyobobook.co.kr 주요내용 · 왜 분산 트랜잭션이 최신 애플리케이션에 적합하지 않은지 이해하기 · 마이크로서비스 아키텍처에서 사가(Saga) 패턴 이용하여 데이터 정합성을 유지하기 · 코.. 2022. 9. 27.
[Spring] Event Driven (우아콘2020) 우아콘 강의 자료와 아래 책을 참고하여 정리하였습니다. 도메인 주도 개발 시작하기 [우아콘2020] 배달의민족 마이크로서비스 여행기 회원시스템 이벤트기반 아키텍처 구축하기 시스템 간 강결합 문제 쇼핑몰에서 구매를 취소하면 환불 처리를 해야 합니다. @Service public class CancelOrderService { private RefundService refundService; @Transactional public void cancel() { // order 취소 로직 // 환불 로직 try { refundService.refund(); } catch(Exception ex){ ??? } } } 보통 결제 시스템은 외부에 존재하므로 RefundService는 외부에 있는 결제 시스템이 제공하.. 2022. 8. 21.
[MSA] Event Sourcing 이란? Event Sourcing 이란 ? 이벤트 소싱이란 application의 모든 상태를 일으키는 이벤트를 순서에 맞게 저장하여 status를 만들어내는 방법입니다. 먼저 말씀 드리면 사실 일반적인 경우에 필요하진 않습니다. 아니, 대부분의 경우에는 이렇게 구현할 필요하가 없습니다. 하지만 필요한 경우가 있고 장점도 충분히 가지고 있습니다. 설계할 때 몰라서 고려하지 않는 것 보다는 알아두면 좋은 설계 테크닉 정도로 생각하시면 좋을것 같습니다. 먼저 일반적으로 어플리케이션에서 데이터 모델을 저장하는 방법은 현재 상태를 저장하는 방법을 이용합니다. 여기에는 NoSQL, RDBMS 등을 따지지 않습니다. 어떤 데이터를 어떤 모델로 저장하냐에 대한 부분입니다. 이렇게 저장했을 때는 우리는 마지막 상태값만을 알 .. 2022. 8. 7.
Event Driven Architecture 란? 이벤트 기반 아키텍처 정의 EDA(Event-Driven Architecture)는 분리된 애플리케이션이 이벤트 브로커(현대 메시징 지향 미들웨어)를 통해 이벤트를 비동기식으로 게시하고 구독할 수 있는 소프트웨어 디자인 패턴입니다. 이벤트 기반 아키텍처는 업데이트를 주기적으로 폴링하는 대신 비즈니스 전반에 걸쳐 이벤트가 발생할 때 애플리케이션, 마이크로서비스 및 연결된 장치 간에 정보가 실시간으로 흐르도록 하는 엔터프라이즈 IT 시스템을 구축하는 방법입니다. EDA(Event-Driven Architecture)는 분리된 아키텍처를 통해 이벤트를 기록, 전송 및 처리하도록 구축된 시스템 설계 방식입니다. 이는 시스템이 정보를 공유하고 작업을 수행하기 위해 서로에 대해 알 필요가 없음을 의미합니다. 디커플.. 2022. 7. 28.
MSA 아키텍처 MSA(Micro Service Architecture)는 설계 방식중 하나이다. 배로 비유하면 Monolithic = 항공 모함이고, MSA = 각개 전투하는 여러 작은 보트들의 연결이다. (서로 무전으로 교신 중) MSA의 장점은 모두 Monolithic의 단점이며, 반대로 Monolithic의 장점은 모두 MSA의 단점이다. 정답은 없지만, IT 대기업들은 모두 MSA로 전환 했다는 사실이 팩트이다. 아래 Monolithic 단점 하나가 IT 대기업에게 너무 크리티컬하게 작용했다. (중소 기업은 Monolithic 규모가 작아서 관리가 가능하다는 얘기) MSA 장점 배포 관점 서비스 별 개별 배포가 가능하다. (배포 시 전체 서비스의 중단이 없음.) 독립 배포가 가능하므로 개발자의 자율성이 증가한다.. 2022. 7. 6.