본문 바로가기

전체 글48

7. 분산 시스템을 위한 유일 ID 생성기 설계 전제 조건을 정해보자 ID는 유일해야 하고, 정렬이 가능해야 한다 새로 만든 ID는 이전에 만든 ID보다 큰 값일 것이다 ID는 숫자로만 구성되어야 한다 (?) ID는 발급 날짜에 따라 정렬이 가능해야 한다 초당 1만 개 이상의 ID를 만들 수 있어야 한다 ID는 64비트로 표현될 수 있는 값이어야 한다. (128 비트는..?) 다중 마스터 복제 (multi-master replication) DB의 AutoIncrement 기능을 이용하는 방법이다 DB 수 만큼 ID 값을 증가시키는 것을 의미한다 ex) 3대의 DB가 존재한다면 첫 번째 DB : 1, 4, 7, 10 ... 두 번쨰 DB : 2, 5, 8, 11 ... 세 번째 DB : 3, 6, 9, 12 ... 규모 확장성 문제를 어느정도 해결할 .. 2023. 3. 26.
6. Key - Value Storage 설계 키 값 저장소는 비관계형 데이터베이스이다 고유 식별자를 키로 가진다 키와 값 사이의 관계를 "키-값" 쌍 이라고 지칭한다 대표적인 키 값 저장소 DynamoDB , Memcached, Redis, Cassandra 등등 put(key, value) : 키-값 쌍을 저장소에 저장한다 get(key) : 인자로 주어진 키에 매달린 값을 꺼낸다 문제 이해 및 해결 범위 확정 키 값 쌍의 크기 (ex. 10kb 이하) 큰 데이터를 저장할 수 있어야 한다 높은 가용성을 제공해야 한다 높은 규모 확장성을 제공해야 한다 데이터 일관성 수준은 조정이 가능해야 한다 응답 지연시간이 짧아야 한다 분산 키 값 저장소 분산 해시 테이블이라고도 불린다 CAP 정리 (Consistency, Availability, Partiti.. 2023. 3. 19.
5. 안정 해시 설계 안정 해시의 이점 서버가 추가되거나 삭제 될 때, 재배치 되는 키의 수가 최소화 된다 데이터가 보다 균등하게 분포하게 되므로 수평적 규모 확장성을 달성하기 쉽다 핫스팟 키 문제를 줄인다. 안정 해시 사용 사례 아마존 DynamoDB의 Partitioning 관련 컴포넌트 Apache Casandra 클러스터의 데이터 파티셔닝 디스코드 채팅 어플리케이션 아카마이 CDN 매그래프 네트워크 부하 분산기 2023. 3. 12.
4. 처리율 제한 장치의 설계 처리율 제한 장치는 클라이언트로부터 유입 되는 요청 수를 조절하는 장치이다 (임의의 요청 임계치에 도달하면 요청을 drop하는 것과 같은 후속 조치를 취할 수 있도록 한다) 예시 사용자는 초당 2번 이상의 로그인 요청을 할 수 없다 사용자는 1분에 30개 이상의 댓글을 작성할 수 없다 장점 DOS 공격에 의한 자원 고갈을 방지할 수 있다 써드파티 api 요청으로 읺나 과금과 관련 된 요청의 수를 제한하면, 비용 절감의 효과를 얻을 수 있다 서버의 과부하를 막을 수 있다 1단계 - 문제 이해 및 설계 범위 설정 클라이언트 측에서 제한 해야 할까? 혹은 서버 측에서 제어 해야 할까? 제한의 기준은 무엇인가? IP? ID? 시스템의 규모는 어느정도여야 하나?? (요청 수는 얼마나 수용이 가능해야 하는가?) 처.. 2023. 3. 5.
반응형