•
문제 발생:
서버 부하를 효율적으로 관리하기 위해 로드밸런서를 도입한 후, 일부 유저가 Socket 연결에 실패하거나 연결이 불안정해지는 문제가 발생했습니다.
•
원인:
로드밸런서 도입으로 인해 소켓 연결이 분산된 서버들로 나누어졌고, 이로 인해 서버 간의 소켓 연결 정보가 공유되지 않아 일부 유저가 연결 오류를 겪었습니다.
•
해결 방법:
문제를 해결하기 위해 Redis 어댑터를 도입하여 분산된 서버 간의 소켓 연결 정보를 통합적으로 관리했습니다. 이를 통해 각 서버가 동일한 소켓 연결 상태를 공유하게 되어, 모든 유저에게 안정적인 실시간 연결을 제공할 수 있게 되었습니다.
◦
RedisAdapter 설정
기존에 사용하고 있는 Redis 클라이언트의 환경변수를 사용하고 있습니다.
◦
main.ts
◦
Redis 어댑터를 통해 분산된 소켓 서버들이 통합적으로 관리되고 있습니다.