알다르 서버의 기본 구조는 서버를 여러개로 분산시킴으로써 한서버의 집중적인 과부화를 막는데 있다.
단일 서버에서 모든 기능을 돌리면 개발자가 개발하기는 편하지만
마인크래프트 자체가 싱글스레드로 돌아가기 때문에
동시접속자가 어느정도 넘어가버리면 렉이 걸리기 쉽상이다.
마인크래프트 게임시간 단위로는 TPS(Ticks Per Seconds)를 사용하는데 정상적인 서버라면 20이 정상값이지만
서버내 처리량과 연산량이 많아지면 18 19 심지어 14밑으로도 떨어지는데, 실제 플레이어들이 느낄정도로 렉이 발생한다.
각설하고 서버의 종류부터 알아보자
1. 서버의 종류
알다르 서버의 구조는 딱 3가지로 나눠진다.
첫번째는 번지코드 서버(리버스 프록시) , 두번째는 OSGI제어서버 그리고 세번째는 마인크래프트 서버이다.
번지코드는 마인크래프트의 연결을 대신받아 마인크래프트 서버들과의 연결을 이어주는 역할을 한다.
플레이어가 접속하기위한 하나의 관문이라고 생각하면 편하다.
OSGI는 번지코드와 마인크래프트 서버에서 전송하는 메세지를 중계해주는 역할(메세지 브로커)을 하며 각 서버들의 통신 상태를 확인한다.
마인크래프트 서버는 말그대로 마인크래프트 서버이다.
플레이어는 마인크래프트서버에 다이렉트로 접속할수 없고 번지코드를 통해 접속이 가능하다.
2. 서버 역할군
서버를 여러개로 나누면 각서버들이 한 컨텐츠에 집중할수 있는 장점이 있다.
우리가 계획 하던 알다르 서버도 무역월드(반야생 경제), 로그라이크, 섬 등등이 준비되어 있었다.
내가 담당하던 쪽은 무역월드 서버쪽이였는데 이후 포스팅 되는 내용에서 확인하면 좋을것같다.
'마인크래프트 > 플러그인 개발' 카테고리의 다른 글
월드 분할 시스템 (Aldar-World-Division) (3) | 2021.12.15 |
---|---|
플레이어 관리모듈 (Aldar-Player-Manage) (0) | 2021.12.15 |
PROJECT ALDAR (0) | 2021.12.12 |
Quest - 범용 퀘스트 플러그인 (0) | 2020.03.29 |
파티클의 벡터 회전을 위한 VectorUtil.java (0) | 2020.01.20 |