-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
[메시지 발송 트래픽 계산]
- 한 사용자당 일일 메시지 발송량: 100회
- 100만 MAU (33,000 DAU)
- 평균 QPS = 330만 / 86,400초 ≈ 38 QPS
- 피크 시간대는 약 3배로 가정 (= 약 150 QPS)
100만 MAU 서비스의 경우 메시지 발송 예상 qps는 150 (이미 높은 편)
현재 1000만 MAU 이상이고 계속 성장하는 서비스라고 가정했을 때, 트래픽이 집중되는 시간에 부하가 크므로 비동기 처리를 통해 부하를 조절한다.
- 메시지 발송이 단순히 디비에 채팅 레코드 하나 추가하는 동작이 아니라 다양한 정책을 확인하는 복잡한 전처리를 필요로 한다고 고려했음
graph LR
BROWSER[Browser] -->|메시지 전송| API[API 서버]
BROWSER -.->|WebSocket 연결| CHANNEL[채널 서버]
INTERNAL[Internal Client<br/>다른 도메인 서버] -->|Internal API| API
API -->|이벤트 발행| KAFKA[Kafka]
API --> DB[(DB)]
KAFKA -->|이벤트 구독| WORKER[워커]
KAFKA -->|이벤트 구독| CHANNEL
WORKER -->|이벤트 발행| KAFKA
WORKER --> DB
CHANNEL -.->|메시지 푸시| BROWSER
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels