8주3일차_MSA_데이터_설계_전략_실습
8주3일차_MSA_데이터_설계_전략_실습
필기 내용
이번에 배울 것
1.1 서비스 독립성
각 서비스가 독립적인 데이터베이스 스키마를 소유하여 데이터 독립성을 유지합니다.
1.2 데이터 일관성을 위한 Eventual Consistency 개념
1.3 SAGA 패턴
- 서비스 간 트랜잭션을 작은 로컬 트랜잭션들의 연속된 흐름으로 처리
- 각 서비스가 개별적으로 트랜잭션을 수행하고, 실패 시 보상 트랜잭션(Compensating Transaction)을 실행
1.4 Event Sourcing
상태 변경을 이벤트로 저장하고, 현재 상태를 이벤트의 시퀀스로 재구성합니다.
Action Plan
수업 내용 필기 정리.
- 카프카란 무엇인가?
- 분산 시스템에서 서비스 간 데이터를 주고받는 방식으로 kafka는 대용량 로그 처리에 좋고 reabbitMQ는 여러 프로토콜을 지원해주고 ㅅㅣㄴ뢰성이 보장되는 것
- 메시징 시스템. 카프카는 순서를 보장하지 않지만 고가용성에 적합함 rabbitMQ는 성능은 다소 낮지만 ㄱ메시지 전달을 보장한다.
- 현재 회사에서 이벤트 스토밍을 해보는 것은 어떠할까??
- 파랑새는 없다.
- 회사에 하나씩 적용해보자.
- 퀀텀 점프
- 실제로 사용할 DB를 정할 때. 어떻게 다른 개발자들을 설득하나요? 수치적인 다른 사례들로 하나요?
- mysql로 했던것을 mongoDB로 했을때 장애가 없던 사례.
- mysql로 몇초 쿼리 몇초 , 몽고디비로 했더니 몇초 이렇게 단축되었습니다.
- POC를 해보니 이렇게 괜찮아요, 이걸 써볼래요? 라고 제안.
- 몽고 디비를 로그 기록용으로 쓰기도 한다.
- 단순히 이벤트를 주고받을 때는 다음 이슈가 있을 수 있다.
- 주문 완료 보다 주문 취소가 결제 api에 먼저 이벤트 도착했다면 어떠할까?
- 대안 : zero payload 로 최신화된 데이터를 보장하는 방식도 있음.(DB 동기화를 안하는 방식)
- https://blog.eomsh.com/137
This post is licensed under CC BY 4.0 by the author.
