디벨롭
로그인
디벨롭
로그인
분산 시스템에서 데이터 일관성(consistency)과 가용성(availability)을 동시에 고려해야 하는 상황에서, 특정 요구사항에 따라 CAP 이론의 트레이드오프를 어떻게 선택했는지 설명해주세요.
박상준
·
2024년 11월 27일
팔로우
0
0
CAP 이론(Consistency, Availability, Partition tolerance)
분산 시스템 설계시 직면하는 3가지 속성간의 트레이드 오프
네트워크 파티션이 발생하는 상황
네트워크가 여러 부분으로 나뉘어져서 서로 통신할 수 없는 상황을 말한다
하나의 시스템과 다른 시스템을 이어주는 부분의 네트워크에서 문제가 발생하여
문제가 발생한 서버와 다른 시스템간의 정보의 불균형이 발생함.
해당 문제가 발생한 경우 Consistency(일관성) , Availability(가용성) 둘 중에 하나는 포기해야 한다
일관성을 우선하는 경우 (CP 시스템)
상황
데이터의 정확성과 동기화를 중요시하는 시스템이다.
모든 사용자에게 최신의 데이터가 보여야 한다.
트레이드 오프
가용성을 희생
ex
은행 거래 시스템
고객이 자신의 계좌 잔액을 확인하거나 송금시
일관된 데이터가 필요함
일부 서비스 중단을 감수하더라도 데이터 정확성이 중요함
가용성을 우선하는 경우 (AP 시스템)
상황
데이터의 정확성보다는 가용성 우선
ex
쇼핑몰 앱
네트워크 문제가 발생하더라도 쇼핑은 계속 할 수 있음.
상품 재고 정보가 약간 늦게 업데이트될 순 있음.
실제 시스템에선 어떻게 구성될까?
CP 시스템
구현 방법
리더 - 팔로워 구조(Leader-Follower Architecture)
한 노드가 리더가 되어 데이터 관리
다른 노드들은 리더의 데이터 복제
분산 DB
HBase, Zookeeper
데이터가 항상 일관성 유지하도록 보장
네트워크 문제 발생시 쓰기 작업을 지연시킴.
AP 시스템
구현 방법
Eventual Consistenct ( 결과적 일관성 )
데이터를 분산 시스템에 저장시
즉시 동기화 X
시간이 지나면서 점차 동기화수행
Cassandra, DynamoDB
네트워크 문제 시 쓰기 작업 허용
나중에 데이터 동기화
박상준
이전 블로그 : https://oth3410.tistory.com/
팔로우
이전 포스트
JPA @EqualsAndHashCode - JPA Buddy
다음 포스트
JSON 파일을 쓰는 경우 주의점
0개의 댓글
댓글 작성