socketIo를 효율적으로 사용하는 방법:
로그인할때 soketio와 연결된다. 이후 로그아웃할때까지 유지된다. 이렇게 했을 때 서버에 부하가 갈것이다. 하지만 우리의 서비스에서 부하가 갈만큼 유저가 한번에 접속하는 경우가 없을거라고 예상하기에 socketio를 사용할것이다. 만약 서버에 부하가 갈정도로 유저가 많은 서비스라면 여러대의 서버를 사용할것이고 그렇게 되면 socketio보다는 messageQueue를 사용하는 방식을 고려하는것이 좋을수도있다...
만약 알림을 받아야할 유저가 로그인 상태가 아니여서 socketio에 연결되어 있지 않을때는 어떻게 해야하는가?
그때는 DB에 저장해 유저가 로그인할때 socketio가 아닌 그냥 Restful API로 알림을 보내주면 될거라고 생각한다.
정리
1. Socket.IO 사용 최적화 방안 탐색:
- 서버에 부하를 줄이기 위해 Socket.IO 사용 방안을 고려하였습니다. 특히, 로그인 시에만 Socket.IO 연결을 유지하고 로그아웃 시 연결을 해제하는 방식을 택하였습니다.
2. 부하 관리에 대한 고민:
- 서비스의 유저 수에 따라 서버 부하 관리 방안을 고민하였습니다. 유저 수가 많아져 서버 부하가 예상되는 경우, 여러 대의 서버를 사용하고 메시지 큐를 활용하는 방식을 고려하였습니다.
3. 오프라인 알림 처리 방안:
- 알림을 받아야 할 유저가 로그인 상태가 아닐 경우, 알림 정보를 데이터베이스에 저장해두고, 유저가 로그인할 때 RESTful API를 통해 알림을 전달하는 방안을 고려하였습니다.
'Storify' 카테고리의 다른 글
STORIFY (0202) - 유저 프로필 추가 (0) | 2024.02.02 |
---|---|
STORIFY (0201) - 프로젝트 피드백 (0) | 2024.02.02 |
STORIFY (0130) - Socket.IO(1) (0) | 2024.01.31 |
STORIFY (0129) - 예외 처리 적용, GlobalExceptionFilter (0) | 2024.01.29 |
STORIFY (0127) - 좋아요~ 추가 (0) | 2024.01.27 |