ET框架分布式服務器部署


前言:可能是大佬都覺得簡單吧都沒有詳細的介紹(有介紹,可能是我太小白看不懂,哈哈哈),捉摸了一段時間把大佬們的文檔記錄下:

一、各服務器命名和作用(摘自:ET社區)

服務器名稱

Manager : 對服務器進程進行管理Realm : 登錄服務器 ( 驗證賬號密碼 相當於LoginServer 祖傳叫法,你想叫什么隨你)

  • Gate : 網關服務器
  • DB : 數據庫服務器
  • Location : 位置服務器
  • Map : 地圖服務器
  • Client : 客戶端
  • All Server: 所有服務器集合

 

各服務器的作用(摘錄自文檔ET框架筆記):
  • Manager:連接客戶端的外網和連接內部服務器的內網,對服務器進程進行管理,自動檢測和啟動服務器進程。加載有內網組件NetInnerComponent,外網組件NetOuterComponent,服務器進程管理組件。自動啟動突然停止運行的服務器,保證此服務器管理的其它服務器崩潰后能及時自動啟動運行。
  • Realm:對Actor消息進行管理(添加、移除、分發等),連接內網和外網,對內網服務器進程進行操作,隨機分配Gate服務器地址。內網組件NetInnerComponent,外網組件NetOuterComponent,Gate服務器隨機分發組件。客戶端登錄時連接的第一個服務器,也可稱為登錄服務器。
  • Gate:對玩家進行管理,對Actor消息進行管理(添加、移除、分發等),連接內網和外網,對內網服務器進程進行操作,隨機分配Gate服務器地址,對Actor消息進程進行管理,對玩家ID登錄后的Key進行管理。加載有玩家管理組件PlayerComponent,管理登陸時聯網的Key組件GateSessionKeyComponent。
  • Location:連接內網,服務器進程狀態集中管理(Actor消息IP管理服務器)。加載有內網組件NetInnerComponent,服務器消息處理狀態存儲組件LocationComponent。對客戶端的登錄信息進行驗證和客戶端登錄后連接的服務器,登錄后通過此服務器進行消息互動,也可稱為驗證服務器。
  • Map:連接內網,對ActorMessage消息進行管理(添加、移除、分發等),對場景內現在活動物體存儲管理,對內網服務器進程進行操作,對Actor消息進程進行管理,對Actor消息進行管理(添加、移除、分發等),服務器幀率管理。服務器幀率管理組件ServerFrameComponent。
  • AllServer:將以上服務器功能集中合並成一個服務器。另外增加DB連接組件DBComponent
  • Benchmark:連接內網和測試服務器承受力。加載有內網組件NetInnerComponent,服務器承受力測試組件BenchmarkComponent。

二、設置配置文件

 

 

 再命令行配置中設置各服務器的IP和端口信息,然后保存(有文檔說點啟動但是我點擊后沒有反應)

 

三、Program文件中按需求添加修改

 

 

 

三、批處理文件啟動各個服務器(demo中有各個批處理文件)

@echo off
rd /q /s %cd%\Bin
rd /q /s %cd%\Output
cd %cd%/Server
dotnet publish
dotnet clean
cd %cd%/../
del /a /f %cd%\Bin\Pathfinding.Ionic.Zip.Reduced.dll

xcopy /y %cd%\Config\StartConfig\PCAllServer.txt  %cd%\Bin\
xcopy /y %cd%\Config\graph.bytes  %cd%\Bin\Config\

xcopy %cd%\Bin\*.* %cd%\Output\DB\ /s /e /c /y /h /r
copy /y %cd%\Server\Bats\app1DB.bat  %cd%\Output\DB\
start /D "%cd%\Output\DB"  app1DB.bat

xcopy %cd%\Bin\*.* %cd%\Output\Realm\ /s /e /c /y /h /r
copy /y %cd%\Server\Bats\app2Realm.bat  %cd%\Output\Realm\
start /D "%cd%\Output\Realm"  app2Realm.bat

xcopy %cd%\Bin\*.* %cd%\Output\Location\ /s /e /c /y /h /r
copy /y %cd%\Server\Bats\app3Location.bat  %cd%\Output\Location\
start /D "%cd%\Output\Location"  app3Location.bat

xcopy %cd%\Bin\*.* %cd%\Output\Gate1\ /s /e /c /y /h /r
copy /y %cd%\Server\Bats\app4Gate1.bat  %cd%\Output\Gate1\
start /D "%cd%\Output\Gate1"  app4Gate1.bat

xcopy %cd%\Bin\*.* %cd%\Output\Gate2\ /s /e /c /y /h /r
copy /y %cd%\Server\Bats\app5Gate2.bat  %cd%\Output\Gate2\
start /D "%cd%\Output\Gate2"  app5Gate2.bat

xcopy %cd%\Bin\*.* %cd%\Output\Map1\ /s /e /c /y /h /r
copy /y %cd%\Server\Bats\app6Map1.bat  %cd%\Output\Map1\
start /D "%cd%\Output\Map1"  app6Map1.bat

xcopy %cd%\Bin\*.* %cd%\Output\Map2\ /s /e /c /y /h /r
copy /y %cd%\Server\Bats\app7Map2.bat  %cd%\Output\Map2\
start /D "%cd%\Output\Map2"  app7Map2.bat

啟動批處理文件

cd %cd%/publish
dotnet App.dll --appId=1 --appType=DB --config=../PCAllServer.txt

各個服務器的啟動文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM