작성
·
162
0
void GameSessionManager::Broadcast(SendBufferRef sendBuffer)
{
WRITE_LOCK;
for (GameSessionRef session : _sessions)
{
session->Send(sendBuffer);
}
}
만약 사용자가 엄청 많이 접속해 Session 도 그만큼 증가 하게 되었고,
모든 사용자가 위치동기화를 위해 나의 위치를 Broadcast 를 통해 실시간으로 지속해야 하는 상황에서 위 코드에서 WRITE_LOCK 때문에 병목현상이 일어날 수 있지 않을까 ? 라는 생각을 해봤습니다.
만약 일어날 경우, 이런부분을 조금이나마 해결할 수 있는 방법은 무엇이 있을까요 ?
그렇지 않은 경우, 제가 학습에서 놓친 부분은 어떤 부분이 있을까요 ?
답변 1
2
관련된 주제가 JobQueue에서 내옵니다.
그리고 실제로 유저가 몰리면 부하가 급격히 상승합니다.
사실 MMO에서 중요한건 '동접'이 아니라
같은 지역에 몇 명이 모여있느냐? 가 핵심입니다.