작성
·
385
0
강의 너무 잘 듣고 있습니다. MMO RPG를 너무 만들어보고 싶었는데.. 이런 귀한 내용들을 자세히 설명해주시는 분이 있다니.. 정말 큰 도움이 됩니다
다름아니라 해당 강의를 듣다가 문득 궁금해지는 점이 있어 실례안된다면 간략하게라도 의견을 듣고싶어 여쭙게 되었습니다...! 질문은 2개 입니다..!(현재 저는 4챕터까지만 듣고 질문을 드리는 상태임을 미리 말씀드립니다)
MMO RPG 서버는 scale out 을 어떻게 할까?? 에 대한 궁금증 입니다.
스케일 아웃의 방법을 보통 어떻게 하게 되는지 궁금해져서 여쭤봅니다(제가 부족한지 검색을해도 구체적인 방법들이 잘 안나오는 것 같아서.. 간단하게라도 보통 어떻게하는지 궁금하네요..)
만약 1,2,3,4,5,6,7... 100 맵이 있다고 가정하고, 1번맵에만 유저들이 정말 많아서 하나의 서버로 감당이 부담스럽다고 했을때, 1번 맵을 위해 2개 3개의 서버를 투입하는것이 가능할까요..?
왠지 강의를 들었을땐 1번맵의 서비스를 1개의 서버로 밖에 못하지 않을까.. 싶은데.. 우선 제가 생각해본 방식은.. 아래와 같습니다
- 1번맵의 경우에는 send할 내용들을 한 서버의 메모리에 두는게 아니라 레디스라는 메모리DB에 저장을 한다
- 3개 혹은 4개정도 되는서버가 이 레디스를 바라보고 데이터를 가져와서 연결된 클라이언트들에게 데이터를 전송
흠.. 그런데 이렇게하면 속도가 충분히(?) 빠를지에 대한 의문이 들어서 보통의 MMO RPG 서버들에서 이런식으로 scale out을 하는게 맞는방식인지 감이 오지않아 질문 드립니다.
MMO RPG 서버는 만약 로직을 수정한다고 한다면 서버점검같은걸 하지 않고 해당로직을 수정해서 배포가 가능할까요??
강의내용에서는 서버의 메모리에 유저들의 정보를 다 갖고있어야할 것 같고... 그렇게 되면 중간에 로직을 수정해서 새로운 서버를 띄우고 기존서버를 죽이게되면.. 해당 서버에 접속해있던 유저들이 다 튕기게 되지 않을까 싶어서요. 유저들이 인지하지 않게 편안하게 서버내용을 바꾸는것이 MMO RPG 서버에서 가능할까요..?
끝까지 읽어주셔서 감사드립니다. 강의 정말 잘 듣고 있습니다!!
답변 2
1
보통 MMO에서 한 1개의 서버 = 1개의 머신입니다. 예외적으로 던전이나 특정 구역을 다른 머신에서 돌리는 경우도 있지만 아주아주 끔찍한 일이 많아집니다. (멀티쓰레드도 빡센데, 다른 머신끼리의 동기화라?)
Redis등 NoSQL은 MMO에선 거의 사용하지 않습니다.
그리고 궁금증에 대한 부분은 Part9에서 많이 다룹니다.
그건 절대 불가능합니다. 당연히 패치나 서버를 배포할 땐, 사람이 많이 없는 새벽에 주로 합니다.
(기존 서버 내리고, 신규 서버로 교체. 이 작업도 보통 2시간 정도 잡힙니다)
0