CAP 정리

2024. 6. 24. 20:41TIL

✔오늘 배운 중요한 🔑 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