11장 : 뉴스 피드 시스템 설계
1단계 : 문제 이해 및 설계 범위 확정
2단계 : 개략적 설계안 제시 및 동의 구하기
피드 발행 : 사용자가 스토리를 포스팅하면 해당 데이터를 캐시와 데이터베이스에 기록한다. 새 포스팅은 친구의 뉴스 피드에도 전송된다.
뉴스 피드 생성 : 지면 관계상 뉴스 피드는 모든 친구의 포스팅을 시간 흐름 역순으로 모아서 만든다고 가정한다.
뉴스 피드 API
뉴스 피드 API 는 클라이언트가 서버와 통신하기 위해 사용하는 수단이다.
HTTP 프로토콜 기반
상태 정보를 업데이트
뉴스 피드를 가져옴
친구 추가
피드 발생 API
피드 읽기 API
피드 발행
뉴스 피드 생성
3단계 : 상세 설계
피드 발행 흐름 상세 설계
웹 서버
포스트 팬 아웃 서비스
읽기 시점에 팬아웃하는 모델
피드 읽기 흐름 상세 설계
캐시 구조
4단계 : 마무리
데이터베이스 규모 확장
수직적 규모 확장 vs 수평적 규모 확장
SQL vs NoSQL
주-부(master-slave) 다중화
복제본(replica)에 대한 읽기 연산
일관성 모델(consistency model)
데이터베이스 샤딩(sharding)
이 외
웹 계층을 무상태로 운영하기
가능한 한 많은 데이터를 캐시할 방법
여러 데이터 센터를 지원할 방법
메시지 큐를 사용하여 컴포너늩 사이의 결합도 낮추기
핵심 메트릭에 대한 모니터링. 예를 들어 트래픽이 몰리는 시간대의 QPS, 사용자가 뉴스 피드를 새로고침할 때의 지연시간 등
Last updated