https://imgur.com/2AYGTbI
Paris to Moscow
(1) 간단한 시스템 사용량 추정
처리량
- 주변에 존재하는 친구 리스트를 제공하는 서비스를 만든다고 가정
- 가입자는 1000만명이라고 가정
- 서비스 대상은 국내로 한정
- 주요기능
- 사용자 위치 갱신
- 경로 안내 서비스 (ETA 서비스 포함) - 예상 도착시간 표시 (Estimated Time of Arrival))
- 지도 표시
- QPS 계산
- 하루에 시스템을 사용하는 능동 사용자 (DAU)는 100만명 (전체 가입자의 10%)
- 각 사용자는 하루 평균 1시간 경로안내 서비스를 사용한다.
- 100만 * 60분 = 하루에 6천만분 사용 = 하루에 36억초 사용
- 초당 1번씩 주행 정보를 갱신한다고 가정한다.
- 조회시 초당 36억 / (606024) = 41666건
- QPS는 40K
- GPS 좌표 전송은 36초에 한번씩 수행한다.
- 36억초 / 36 = 하루에 요청하는 GPS 좌표 전송은 1억건
- 쓰기시 초당 1억 / (606024) = 1157건 = 1천건
- QPS는 1K
- 참고
- 기본적인 쿠버네티스 POD가 처리 가능한 TPS?
- 경로조회시 자기 자신에게만 데이터를 Push 하면 된다.
-
각 축적 타일별 경로 정보와 대즁교통 정보 등은 주기적으로 서버로 업데이트 된다.
읽기/쓰기 비율
- 읽기:쓰기 = 40 : 1
- 쓰기 프로세스가 단순하지 않고 Stream으로 구성됨 (Pub/Sub)
- 쓰기 프로세스의 응답을 Async로 전달함 (Push)
(2) 시스템 설계