首页 > 其他 > 详细

ET框架分布式服务器部署

时间:2019-10-15 13:04:02      阅读:288      评论:0      收藏:0      [点我收藏+]

前言:可能是大佬都觉得简单吧都没有详细的介绍(有介绍,可能是我太小白看不懂,哈哈哈),捉摸了一段时间把大佬们的文档记录下:

一、各服务器命名和作用(摘自: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%\Binxcopy /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\DBstart /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\Realmstart /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\Locationstart /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\Gate1start /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\Gate2start /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\Map1start /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\Map2start /D "%cd%\Output\Map2"  app7Map2.bat

启动批处理文件

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

各个服务器的启动文件

ET框架分布式服务器部署

原文:https://www.cnblogs.com/zhangliang111/p/11676615.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!