开源服务器框架NoahFrame分享 第一章:游戏服务器的进化
2017-10-31
3:集群内部服务器,均增加了一致性算法,有效的保障了数据的一致性,和协议路由准确性;
4:大量的actor应用,有效的避免了http,mysql等同步等待的业务堵塞主业务的情况,加强了整个架构的灵活性;
5:大量的基础库插件,大大的提升了开发效率和系统的成型率;
缺点:架构过于复杂,需要一定水平的成员才能驾驭,否则会很容易发生隐藏的非必现事故;
那现在来说一下NF的服务器架构的一些基础内容。
1:区服管理相关
在整体架构上,NF设计为可分区分服也可全区全服部署。如果是全区全服部署,则相当于一个大区扩容接纳所有玩家(在worldserver下面扩容gameserver);如果是分区分服部署,则worldserver下属为一个单服,许多worldserver构成的单服一起注册在master构成整个游戏世界。
2:服务器管理机制
(1)masterserver
masterserver管理所有的loginserver和所有的worldserver,区服的状态和列表,可由worldserver主动发消息更新(所有的loginserver和worldserver一启动就要向master注册),它是整个额架构中的老大,中心节点。同时,次节点可以支持配置多台服务器以避免单点,而且这些无需额外写代码;
(2)worldserver
worldserver管理所有此服下面所有的gameserver和proxyserver,并保存他们的状态(所有gameserver和proxyserver一启动就需要连接到worldserver注册)。同时,次节点可以支持配置多台服务器以避免单点,而且这些无需额外写代码;
(3)loginserver
loginserver主要用于向用户展示区服列表和处理登录逻辑,loginserver一启动就需要像masterserver注册。同时,次节点可以支持配置多台服务器以避免单点,而且这些无需额外写代码;
(4)gameserver一启动就要向worldserver注册并纳入管理,如果worldserver广播下来的服务器列表中有其他worldserver,还需要主动去连接其他的worldserver(几乎所有的server都会有这样的逻辑,扩容用);同时,gameserver接受proxyserver的连接;gameserver内部自带actor,因此架构中不再继续使用DBServer这样的代理数据库服务器;
(5)proxyserver在架构中主要用与代理client数据请求的作用以及核对消息的作用,一启动就需连接到worldserver并接受管理,并从worldserver获取到gameserver(同一个服)列表然后主动连接到所有的gameserver;proxyserver会主动汇报自己的状态和开放端口给worldserver。同时,次节点可以支持配置多台服务器以避免单点,而且这些无需额外写代码;
网友评论