모음/[가상면접 사례로 배우는 대규모 시스템 설계 기초] 3

[가상면접 사례로 배우는 대규모 시스템 설계 기초] ch12. 채팅 시스템 설계

요구사항1. 응답지연이 낮은 일대일 채팅 기능2. 최대 100명까지 참여할 수 있는 그룹 채팅 기능3. 사용자의 접속상태 표시 기능4. 다양한 단말 지원, 하나의 계정으로 여러 단말에 동시 접속 지원5. 푸시 알림 +) 5천만 DAU 처리할 수 있도록 설계  1차 설계 1. 설계 전 고려사항 : 네트워크 통신 프로토콜 결정 - 메시지 요청 시나리오에서는 HTTP 프로토콜 : keep-alive 헤더 사용해서 클라이언트와 서버 사이의 연결을 유지 ㄴ 페이스북 같은 많은 대중적 채팅 프로그램이 초기에 HTTP를 사용함 - 메시지 수신 시나리오에서는 HTTP 프로토콜을 사용하기에는 서버에서 클라이언트로 임의 시점에 메시지를 보낼 때 사용 못하므로, 이때를 위해 다른 기법을 사용한ㄴ 폴링(polling), 롱 ..

[가상면접 사례로 배우는 대규모 시스템 설계 기초] Ch10. 알림 시스템 설계

요구사항- 푸시 알림, SMS 메시지, 이메일 지원해야함 - soft-real-time 시스템 : 가능한 빨리 전달되어야 하지만 시스템에 높은 부하가 걸렸을때 약간의 지연 가능   1차 설계:   알림 전송 시스템에 1개 서버만 제공하는 시스템 문제점 - SPOF(Single-Point-Of-Failure) : 알림 서비스에 서버가 하나밖에 없더서 그 서버에 장애가 생기면 전체 서비스 장애로 이루어짐- 규모 확장성 : 한 대 서비스로 모든 것 처리하므로, 그 안에 데이터베이스나 캐시 등 주요 컴포넌트의 규모를 개별적으로 확장할 수 없음 - 성능 병목 : 모든 것을 한 서버로 처리하면 사용자 트래픽이 몰리는 시간에 시스템 과부하 빠질 수 있음    2차 설계:   데이터베이스, 캐시, 메시지 큐 도입한 알..

[가상면접 사례로 배우는 대규모 시스템 설계 기초] Ch7. 분산 시스템을 위한 유일ID 생성기 설계

요구사항- ID는 유일해야 한다.- ID는 숫자로만 구성되어야 한다.- ID는 64비트로 표현될 수 있는 값이어야 한다.- ID는 발급 날짜에 따라 정렬 가능해야 한다.- 초당 10,000개의 ID를 만들 수 있어야 한다.  개략적 설계 - 다중 마스터 복제 (multi-master replication) - UUID (universally unique identifier)- 티켓 서버 (ticket server)- 트위터 스노플레이크 (twitter snowflake) 접근법  다중 마스터 복제 (multi-master replication) :다음 id값을 구할때 k(데이터베이스 서버의 수) 만큼 증가 - 장점 : 규모 확장성 문제를 해결할 수 있다. - 단점ㄴ 여러 데이터 센터에 걸쳐 규모를 늘리기..

반응형