ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TroubleShooting - 로드밸런서 환경에서의 Socket 연결 (Redis Adapter, Redis Pub/Sub)
    TIL. 2024. 9. 2. 23:17

    서버 부하를 효율적으로 관리하기 위해 로드밸런서를 도입한 후, 일부 유저가 Socket 연결에 실패하거나 연결이 불안정해지는 문제가 발생했습니다.

     

    원인

    로드밸런서 도입으로 인해 소켓 연결이 분산된 서버들로 나누어졌고, 이로 인해 서버 간의 소켓 연결 정보가 공유되지 않아 일부 유저가 연결 오류를 겪었습니다.

     

    Redis Pub/Sub 및 Redis Adapter를 도입하여 분산된 서버 간의 소켓 연결 정보를 통합적으로 관리했습니다. 이를 통해 각 서버가 동일한 소켓 연결 상태를 공유하게 되어, 모든 유저에게 안정적인 실시간 연결을 제공할 수 있게 되었습니다.

     

    RedisAdapter 설정 

    기존에 사용하고 있는 Redis 클라이언트의 환경변수를 사용하고 있습니다.

    main.ts

     

    Socket.IO 공식문서에서 제공하는 자료입니다. 

    Redis 어댑터를 통해 분산된 소켓 서버들이 통합적으로 관리되고 있습니다.

     

    마무리 

    Redis를 활용한 서버 연결 통합 관리는 소켓 연결뿐만 아니라 세션을 통한 인증 관리에도 유용하게 사용될 수 있습니다. 여러 서버에 분산된 인증 정보를 통합 관리하기 위해 Redis의 키-값 저장소를 사용하면, 각 서버가 일관된 인증 정보를 공유할 수 있어 통합된 인증 처리가 가능합니다.

    'TIL.' 카테고리의 다른 글

    TroubleShooting - Socket Transports 설정  (0) 2024.09.03
    NestJS : 순환 참조  (0) 2024.08.12
    재귀함수와 반복문  (1) 2024.08.06
    자료구조 : Linked List  (0) 2024.07.19
    자료 구조 : 해시 테이블  (0) 2024.07.17
Designed by Tistory.