CAP 정리
2024. 6. 24. 20:41ㆍTIL
✔오늘 배운 중요한 🔑 point
- 데이터의 일관성, 가용성, 파티션 감내라는 세가지 요구사항을 동시에 만족하는 분산 시스템을 설계하는 것은 불가능하다.
- 대부분의 실제 분산 시스템은 CA를 선택하지 않고 CP 혹은 AP 중 하나를 선택한다
🎯 오늘 배운 내용
REDIS 같은 KEY- VALUE 저장소는 많은 데이터를 저장하기 위해 분산 키-값 저장소(distributed key-value store)를 만들 필요가 있다.
분산 시스템을 설계할 때는 CAP 정리의 이해가 필수적이다
CAP 정리
데이터의 일관성, 가용성, 파티션 감내라는 세 가지 요구사항을 동시에 만족하는 분산 시스템을 설계하는 것은 불가능하다
데이터 일관성(Consistency): 모든 클라이언트는 어떤 노드에 접속했느냐에 관계없이 언제나 같은 데이터를 봐야함
가용성(Availability): 클라이언트는 일부 노드에 장애가 발생하더라도 항상 응답을 받을 수 있어야 함
파티션 감내(Partition tolerance): 네트워크에 파티션이 생겨도 시스템은 계속 동작해야함
(파티션: 두 노드 사이에 통신 장애가 발생)
CP: 일관성과 파티션 감내 지원 (일관성이 중요하므로 은행권에서 사용)
AP: 가용성과 파티션 감내 지원 (가용성이 중요하므로 SNS에서 사용)
CA: 일관성과 가용성을 지원 (통상 네트워크 장애는 피할 수 없으므로 실세계에 CA 시스템은 존재하지 않는다!!)
🤔 어떻게 활용할까?
CP와 AP 중 주어진 요구사항에 맞도록 CAP 정리를 적용해야한다
📓 오늘의 한줄
"If you fall behind, run faster. Never give up, never surrender, and rise up against the odds."
- Jesse Jackson -
'TIL' 카테고리의 다른 글
.let (0) | 2024.06.26 |
---|---|
CDN(Content Delivery Network) (0) | 2024.06.25 |
@Transactional과 롤백 (0) | 2024.06.23 |
@DataJpaTest 를 이용한 통합 테스트 코드 작성하기 (0) | 2024.06.22 |
@DataJpaTest를 이용해서 단위 테스트 코드 작성하기 (0) | 2024.06.21 |