모임 참가요청의 인원 추가로직에서 동시성 처리 방식에 따른 성능 비교를 위한 부하 테스트 진행 중 성능이 갑자기 떨어지는 문제 발견
- 테스트 환경 :
- k6를 활용한 부하 테스트
- 10,000 개의 유저 계정으로 1,000 개의 모임을 랜덤한 쌍으로 참가
- 3분동안 부하를 점점 늘려가서 총 5분동안 진행
(초당 처리량이 증가하던 중 35/s 정도에서 3~5/s 로 급격하게 떨어졌다)
모임 참가 요청의 흐름
참가 요청
-> 모임 조회
-> 모임 조건 확인
-> 유저 조회(웹클라이언트 호출)
-> 유저 조건 확인
-> 참가자 추가(동시성 처리)
-> 참가 이벤트 발행
예상 원인
로그 확인
사용자 조회 실패: userId=4229, error=java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 5000ms in 'flatMap' (and no fallback has been configured)
-> 로직 내부의 웹클라이언트를 통한 사용자 조회 타임아웃
-> 웹클라이언트 호출이 어떻게 이루어지는지 확인 필요
트레이스 확인