포스트

Gateway를 병목으로 만든 어처구니 없는 원인

제 서비스는 엣지 프록시 뒤에 프론트엔드와 백엔드 게이트웨이가 있습니다.

프론트에서의 api 호출 응답이 너무 늦어지고 사진 로드도 늦길래, 혹시 node로 만든 엣지 프록시가 병목인가 의심했습니다.

그런데 알아본 결과 node 엣지프록시는 매우 빠르게 작동하고(20ms) 있었고, python 게이트웨이가 매우 늦게(2000ms) 작동하고 있었습니다.

게이트웨이에서 jwt 토큰 인증, 리디렉션 및 모든 백엔드의 외부로의 연결을 거치다 보니 그런 면도 있어서 구조를 바꿔야 하나 심각해졌습니다.

하지만 의외로 가장 간단한 해결책으로 해결되었습니다.

print()문을 거의 다 지우니 io가 줄어들면서 통신 속도가 매우 빨라졌습니다.ㅎㅎ

일단 이렇게 서비스를 살려놓기는 했습니다.

다음에는 circuit breaker같은 구조를 도입하는 것을 고려할 수 있습니다.

circuit breaker는 마이크로서비스의 생명보험(하나가 죽어도 다른 것들은 살아있는) 같은 패턴이라고 합니다.

기대가 되네요. ㅎㅎ

여담이지만, 제가 만드는 서비스에서 결제, 구독, 환불 등 시스템을 넣다가 코드가 망가졌습니다. (성능이 너무 저하됬습니다.) 그래서 3일 전으로 롤백해서 다시 하고 있는데요, 금방 잘 마쳤으면 좋겠네요.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.