-
폭증하는 카카오톡 트래픽에 대처하는 방법 - 신성열세미나, 영상 요약정리 2023. 10. 22. 00:01
https://www.youtube.com/watch?v=U905BeDQ_BA
Kakao Tech Meet에서 신성열 님이 발표하신 폭증하는 카카오톡 트래픽에 대처하는 방법에 대해 정리해보고자 합니다.
메시지 전송 트래픽
평상시에는 최대 초당 4만5천건정도트래픽이 발생합니다.
하지만 신년, 월드컵이나 지진과 같은 특별한 이벤트가 발생하면 트래픽은 갑자기 폭증합니다.
폭증하는 트래픽으로 장애가 발생할 수 있습니다.
경주 지진
재난안내 문자를 안내받은 모바일 기기가 깨어나면서 카카오톡의 백그라운드 로그인 기능 때문에 전 국민이 로그인을 트래픽을 요청하게 됩니다.
따라서 모든 스레드가 로그인 기능을 처리하는데 모두 사용되게 되고, 메시지는 실패하게됩니다.
트래픽에 따라 부하레벨을 조정
활성화된 스레드의 비율로 통해 트래픽이 증가하는 것을 감지하고 부하레벨을 조정합니다.
이후 부하레벨에 따라 백그라운드 로그인 기능 비율을 줄이고, 재시도 횟수 감소, 타임아웃을 낮게 조정합니다.
1월 1일 신년 장애
새로 구축한 시스템에서 600ms까지 처리시간이 늘어지며 timeout으로 인해 클라이언트의 연결이 끊어지기 시작했습니다.
백그라운드 로그인과 무관했기 때문에 위의 대응책으로는 해결할 수 없었습니다.
연결이 끊어진 사용자는 다시 접속을 수행했고 로그인 트래픽이 증가하고 일부 메시징 서버가 전송이 불가능해졌습니다.
요청 별 전용 도로 만들기
매니저가 요청에 대해 처리할 스레드의 수는 지정합니다.
스레드의 수가 지정된 경우를 넘어간 경우에는 오버플로우를 감지하여 실패처리합니다.
월드컵 도중 트래픽 변화
골을 넣었을 때 초당 42만의 트래픽이 발생하였습니다.
하지만 교통관리시스템의 구축으로 메시징 전송 트래픽에 할당된 스레드 수가 제한되어 있기 때문에 장애가 발생하지 않았습니다.
일부 요청에 대한 처리는 실패하지만 장애로는 전파되지 않습니다.
마무리
- 당장 필요한 트래픽을 먼저 처리하는 것이 중요하다
- 자원을 요청별로 배분하여 특정 요청이 모든 것을 가로채가지 않도록 해야 한다.
'세미나, 영상 요약정리' 카테고리의 다른 글
토스 SLASH 23 - 토스는 Gateway 이렇게 씁니다. (0) 2023.11.18 신뢰성 있는 카프카 애플리케이션을 만드는 3가지 방법 (1) 2023.10.23 스프링과 함께 더 나은 개발자 되기 - 이일민(토비) (0) 2023.10.18 점진적 추상화 - 이승천 (0) 2023.09.26 어느 날 고민 많은 주니어 개발자가 찾아왔다 2탄 - 김영한 (0) 2023.09.22