MMO 서버를 만들려고 생각하고 있으며 다른 게임이 네트워크를 어떻게 구성하는지 살펴 보았습니다. 내가 알아 차린 것 중 하나는 항상 로그인 서버가 있고 게임 서버가 있다는 것입니다.
이 작업을 수행해야하는지 여전히 결정하고 있지만 먼저 의견을 듣고 싶습니다. 이것의 장점은 무엇이며, 로그인 서버는 게임 서버와 통신하여 로그인을 어떻게 처리합니까?
MMO 서버를 만들려고 생각하고 있으며 다른 게임이 네트워크를 어떻게 구성하는지 살펴 보았습니다. 내가 알아 차린 것 중 하나는 항상 로그인 서버가 있고 게임 서버가 있다는 것입니다.
이 작업을 수행해야하는지 여전히 결정하고 있지만 먼저 의견을 듣고 싶습니다. 이것의 장점은 무엇이며, 로그인 서버는 게임 서버와 통신하여 로그인을 어떻게 처리합니까?
답변:
나는 이것이 로그인과 게임 처리가 논리적으로 다소 독립적이기 때문에 발생한다고 생각합니다. 따라서 더 나은 분리, 쉬운 유지 관리 및 확장 성을 위해 일반적으로 분리되어 유지됩니다. 서로 다른 물리적 서버에 상주 할 필요는 없으며 동일한 머신에서 독립적 인 서비스뿐만 아니라 실행할 수도 있습니다. 트래픽이 너무 커지면 로그인 서버를 다른 컴퓨터로 쉽게 이동할 수 있습니다.
또한 로그인 서버는 공격 경로 일 가능성이 있으므로 보안 관점에서 분리하는 것이 좋습니다.
내부적으로 서로 다른 서버 측 서비스는 일반 소켓을 사용하여 동일한 시스템이나 클러스터의 다른 시스템에서 서로 통신 할 수 있습니다. 또는 데이터베이스 서버를 사용하여 각 사용자에 대해 '로그인'플래그를 유지 보수 할 수 있습니다.
MMO 개발에서 매우 중요한 측면 중 하나는 확장 성을 달성하고로드 밸런싱을 허용하는 것입니다.
자격 증명, 금지 상태, 최근 로그인 실패 횟수 등을 확인하여 사용자를 인증하는 것은 게임 논리 나 게임 데이터를 전혀 몰라도 할 수있는 작업입니다. 따라서 자체 서버 클러스터로 이동하는 것이 매우 쉽습니다.
또한 로그인 서버는 클라이언트가 접속할 수있는 잘 알려진 "입구"입니다. 인증에 성공하면 클라이언트를 게임 서버 클러스터의 해당 서버로 발송할 수 있습니다. 이 디스패치는 네트워크 연결을 올바른 게임 서버로 전달하거나 클라이언트에게 올바른 게임 서버에 대한 새 연결을 열도록 지시하여 수행 할 수 있습니다.
초기 배포를 위해 시스템을 자르는 것에 대해 생각해야합니다. 한 서버에서 여러 조각을 실행하는 것은 매우 쉽습니다. 그러나 하나의 단위로 개발 된 것을 분리하는 것은 매우 어렵습니다.
전 와우 플레이어로서 로그인 서버는 항상 체인에서 가장 약한 링크였습니다.
세계 서버는 일반적으로 뛰어난 안정성 (예 : 새로운 확장 팩 릴리스)을 잘 처리 할 수있었습니다.
그러나 로그인 서버는 그다지 잘 대처하지 못하는 것처럼 보였으며 세계 서버가 괜찮은 동안 자주 다운되었습니다. (공격 / 던전에서 연결이 끊어지면 다시 들어갈 수 없지만 다른 플레이어가 당신을 기다리고 있음을 의미합니다!)
WoW 로그인 시스템이 Battle.Net에 통합되었으므로 Starcraft 2는 WoW에 과부하가 걸리면 사용할 수 없게됩니다 (대격변이 시작된 후 몇 시간 동안 발생)
따라서 사용자 수가 매우 많은 게임을 제작하는 경우 로그인 시스템의 확장 성과 성능도 매우 중요합니다.