독서25 6장. 키-값 저장소 설계 키-값 저장소는 키-값 데이터베이스라고도 불리는 비 관계형 데이터베이스이다. 이 저장소에 저장되는 값은 고유 식별자를 키로 가져와야 한다. 키와 값 사이의 이런 연결 관계를 "키-값" 쌍이라고 지칭한다. 키-값 쌍에서의 키는 유일해야 하며 해당 키에 매달린 값은 키를 통해서만 접근할 수 있다. 키는 일반 텍스트일 수 있고 해시 값일 수도 있다. 성능상의 이유로, 키는 짧을수록 좋다. 일반 텍스트 키 : "last_logged_in_at" 해시 키 : 253DDEC4 키-값 쌍에서의 값은 문자열일 수도 있고 리스트일 수도 있고 객체일 수도 있다. 키 값 저장소는 보통 값으로 무엇이 오든 상관하지 않는다. 키 값 저장소로 널리 알려진 것으로는 아마존 다이나모, memcached, 레디스 같은 것들이 있다. .. 2023. 12. 6. 5장. 안정 해시 설계 수평적 규모 확장성을 달성하기 위해서는 요청 또는 데이터를 서버에 균등하게 나누는 것이 중요하다. 안정 해시는 이 목표를 달성하기 위해 보편적으로 사용하는 기술이다. 해시 키 재배치(rehash) 문제 N개의 캐시 서버가 가정할 때, 이 서버들에 부하를 균등하게 나누는 보편적 방법은 아래의 해시 함수를 사용하는 것이다. serverIndex = hash(key) % N(N은 서버의 개수) 총 4개의 서버를 사용한다고 해보자. 키 해시 해시 % 4 (서버 인덱스) key0 18358617 1 key1 26143584 0 key2 181311146 2 key3 35863496 0 key4 34085809 1 key5 27581703 3 key6 38164978 2 key7 22530351 3 특정한 키가 보.. 2023. 12. 6. 4장. 처리율 제한 장치의 설계 처리율 제한장치 : 클라이언트 또는 서비스가 보내는 트래픽의 처리율(rate)을 제어하기 위한 장치 HTTP를 예로 들면 이 장치는 특정 기간 내에 전송되는 클라이언트의 요청 횟수를 제한한다. API 요청 횟수가 제한 장치에 정의된 임계치를 넘어서면 추가로 도달한 모든 호출은 중단된다. API에 처리율 제한 장치를 두면 좋은 점추가 요청에 대해서 처리를 중단함으로 써 DoS 공격에 의한 자원 고갈을 방지할 수 있다.추가 요청에 대한 처리를 제한하면 서버를 많이 두지 않아도 되고, 우선순위가 높은 API에 더 많은 자원을 할당할 수 있어 비용을 절감할 수 있다.봇(bot)에서 오는 트래픽이나 사용자의 잘못된 이용 패턴으로 유발된 트래픽을 걸러내서 서버 과부하를 막을 수 있다. 1단계. 문제 이해 및 설계 .. 2023. 11. 30. 1장. 사용자 수에 따른 규모 확장성 단일서버 웹 앱, 데이터베이스, 캐시 등이 전부 서버 한 대에서 실행된다. 사용자의 요청 처리 흐름 사용자는 도메인 이름(api.mysite.com)을 이용하여 웹 사이트에 접속한다. 이 접속을 위해서는 도메인 이름을 도메인 이름서비스(DNS)에 질의하여 IP 주소로 변환하는 과정이 필요하다. DNS 조회 결과로 IP 주소가 반환된다. 해당 IP 주소로 웹서버에 HTTP 요청이 전달된다. 요청 받은 웹 서버는 HTML 페이지나 JSON 형태의 응답을 반환한다. 실제 요청들은 2가지 단말로부터 전달된다 웹 어플리케이션 : 비즈니스 로직, 데이터 저장 등을 처리하기 위해서 서버 구현용 언어(java, python)를 사용하고, 프레젠테이션용으로sms 클라이언트 구현용 언어(HTML, JS)를 사용한다. 모바.. 2023. 11. 29. 이전 1 ··· 3 4 5 6 7 다음