본문 바로가기
반응형

2pc2

MSA 트랜잭션의 구원자: 2PC(Two-Phase Commit)와 Saga 패턴 완벽 이해 Advanced MSA Architecture데이터가 흩어져도 하나처럼, 분산 트랜잭션 관리 전략 안녕하세요, code-resting입니다. 서비스 규모가 커져 DB를 쪼개는 '샤딩'이나 서비스별로 DB를 두는 'MSA'를 도입하면 피할 수 없는 숙제가 생깁니다. 바로 분산 트랜잭션이죠. 하나의 물리적 트랜잭션으로 묶을 수 없는 여러 서버 간의 데이터 정합성을 어떻게 맞출 수 있을까요? 오늘 그 해답을 찾아봅니다.1. 고전적인 해법: 2PC (2단계 커밋)중앙에 '코디네이터'를 두고 모든 서버에 "준비됐니?" 물어본 뒤, 모두 OK 할 때만 커밋을 수행하는 방식입니다.✅ 장점: 강력한 일관성(Strict Consistency)을 보장합니다.❌ 단점: 한 서버라도 응답이 늦으면 전체가 대기(Blocking.. 2026. 4. 2.
MSA의 거대한 장벽: 분산 트랜잭션, 왜 2PC 대신 Saga 패턴인가? Advanced Architecture Series 01MSA의 난제, 데이터 정합성을 위한 Saga 패턴 완벽 정리 (1부) 안녕하세요, code-resting입니다. 모놀리식 아키텍처에서는 단일 DB의 @Transactional 하나면 충분했습니다. 하지만 서비스가 쪼개진 MSA 환경에서는 어떤가요? 주문 서비스는 성공했는데 결제 서비스에서 에러가 난다면? 이미 성공한 주문은 어떻게 취소해야 할까요? 오늘은 분산 환경의 영원한 숙제, 분산 트랜잭션의 해결사를 소개합니다.1. 전통적인 2PC(2-Phase Commit)의 몰락분산 트랜잭션을 해결하기 위한 고전적인 방법은 2PC였습니다. 모든 노드가 '준비' 상태를 확인하고 동시에 '커밋'하는 방식이죠. 하지만 2026년의 고가용성 시스템에서 2PC는 .. 2026. 3. 2.
728x90
반응형