오늘의 노력은 내일의 성장으로 이어진다
로그인
오늘의 노력은 내일의 성장으로 이어진다
로그인
확장성과 가용성을 위한 클러스터
Do_It
·
2023년 11월 13일
팔로우
0
가용성
클러스터
확장성
백엔드 개발자로 성장 중!
목록 보기
27/68
확장성이란?
소프트웨어나 서비스의 요구사항 수준이 증가할 때 대응할 수 있는 능력
주로 규모에 대한 확장성을 뜻함(데이터의 크기, 요청 트래픽)
수직 확장(Scale-up) : 성능을 업그레이드
수평 확장(Scale-out) : 서버를 여러대 두거나 하는 것
요구사항이 증가할 때, 비용이 갑자기 커지지 않는게 확장성이 좋음
요구사항이 증가할 때 확장성의 비용 증가가 완만하게 증가하는 것
수평 확장 (Scale-out)
처리 요소를 여러개 두어서 작업을 분산
문중단 확장이 가능
이론적으로는 무한대로 확장이 가능
분산 시스템에 따라오는 문제
부분 장애
네트워크 실패
데이터 동기화 문제
로드밸런싱 문제
Redis Cluster
여러 노드에 자동적인 데이터 분산
일부 노드의 실패나 통신 단절에도 계속 작동하는 가용성
고성능을 보장하면서 선형 확장성을 제공
Redis Cluster 특징
full - mesh 구조 : 모든 노드가 연결 되어 있음
cluster bus 라는 추가 채널 (port) 사용
gossip protocol 사용
hash slot을 사용 : 키 별로 데이터를 어디에 넣을지
DB0만 사용 가능
데이터를 분산하는 기준
특정 키의 데이터가 어느 노드에 속할 것인지 결정하는 메커니즘이 있어야 함
보통 분산 시스템에서 해싱이 사용됨
단순 해싱으로는 노드의 개수가 변할 때 모든 매핑이 새로 계산되어야 하는 문제가 있음
Do_It
오늘의 노력이 내일의 성장으로 이어지고 있음을
팔로우
이전 포스트
WAS 내부 동작 흐름
다음 포스트
Kafka의 기본 개념
0개의 댓글
댓글 작성