지금 생각하고 있는 단일서버에서 분산서버로 변환하는 작업구상은 여러가지다.
다만, 구현 가능성과 효율성을 따지는 단계에서 지식의 한계와 경험의 한계에 부딪혀 여러 방안을 구상하고 월요일
자문을 받을 생각이다.
클라이언트는 nginx 서버에 접속 하고 인증관련 요청을 보내면 nginx는 인증세션 서버에 리버스프록시를 활용하여 패킷을
전달한다.
토큰을 반환받고 매칭요청 패킷을 날렸을 경우 인증세션은 매칭서버 대기열에 해당 유저의 정보를 올리고 매칭서버는 매칭이
성사되었을 경우 게임서버의 상태를 확인 후 연결될 게임서버 정보와 해당 유저들의 정보를 인증세션에 넘김과 동시에 게임서버에도 정보를 넘긴다.
인증세션은 해당되는 클라이언트에게 패킷을 전달하면 클라이언트는 제공받은 서버 포트로 연결을 시도한다.
클라이언트는 인증세션에 API를 통해 토큰을 발급받고 로비서버에 TCP 연결요청을 시도한다.
로비서버에서 매칭서버에 요청하고 게임서버 정보와 함께 반환한다.
클라이언트는 제공받은 포트로 연결을 시도한다.
클라이언트는 루트서버를 통해 모든 것을 수행한다.
루트서버는 받은 패킷에 따라 핸들러에서 각 서버에 맞는 요청을 보내고 받은 결과값을 클라이언트에게 다시 반환한다.
이제야 단일 서버를 이해하고 구축할 수 있는 것 같은데.. 분산서버로 변환하려니 신경써야할게 너무 많다.
나중에 이 TIL을 돌아보았을 때 어떤 생각으로 이런 구조를 그린거지? 할 수 있겠지만 이것 또한 성장기 아니겠나... ㅋㅋㅋ
내일 피드백이 기대되는구만.