문득 궁금한 건데
게임 서버는 커넥션이 끊어지면 그 자체로 접속 종료고 실시간으로 끊기지 않게 낮은 레이턴시로 네트워킹이 돼야하고 같은 위치에 있을 때 항상 그 주변 사람들이 있어야 하잖아
근데 이런 환경에서 로드 밸런서로 서버 스케일링을 하는 게 가능함?
안 그러면 그냥 일반적인 상식과 똑같이 괴물 사양으로 다 때려박은 단일 서버로 다 커버하나?
채널 개념, 매칭 개념이 없는 게임 서버들은 어떻게 서버를 관리함?
게임 서버는 커넥션이 끊어지면 그 자체로 접속 종료고 실시간으로 끊기지 않게 낮은 레이턴시로 네트워킹이 돼야하고 같은 위치에 있을 때 항상 그 주변 사람들이 있어야 하잖아
근데 이런 환경에서 로드 밸런서로 서버 스케일링을 하는 게 가능함?
안 그러면 그냥 일반적인 상식과 똑같이 괴물 사양으로 다 때려박은 단일 서버로 다 커버하나?
채널 개념, 매칭 개념이 없는 게임 서버들은 어떻게 서버를 관리함?
그거를 극복해보겟다고 한게 듀랑고 프로젝트인데...
아 그게 그거였노
자세한 설명좀 궁금하다
그래서 로케 별로 접속 서버가 다르잖아
겜서버쪽은 잘 모르는데 웹소켓 서버 스케일링 구현하면서 일관된 해싱 적용해본 적은 있음
웹소켓따리 쓸 때도 커넥션 끊어지면 적당히 재연결 시도하게 구현하면 되는데 커넥션이란 개념이 없는 udp 기반으로 만든 프로토콜이면 더 유연할듯.
웹소켓이 게임 서버만큼 리얼타임에 절대 끊기면 안 되는 건 아니지 않아? 게임에서는 단 1ms라도 연결이 끊어지면 치명적이잖아
게임 중에 끊어지는게 치명적이지 맵 이동같은거 로딩할 때 재연결하면 뭔상관
어떤 게임을 말하는지는 모르겠는데 아래 댓글 말처럼 아주 잠깐이라도 끊기는게 그렇게 치명적인 게임들은 애초에 채널같은걸 나눠놓든 세션에 인원 제한을 빡세게 걸든 하지 않을까
1ms가 치명적인 게임은 fps류인데 얘들은 방단위로 하니까 로드밸런싱 할 필요가 없지
그래서 서버 채널로 세분화 하는거 아닐까 지역이동할때 채널 분산시키고
많은 게임들처럼 서버, 채널 분리하던가 서비스 디스커버리를 넣어서하는듯 - dc App