优点:
1:增加了可动态扩容的多线程/进程/Actor机制,可以有效的通过动态扩容应对大平台带来的流量压力(理论上有机制,就无限扩容);
2:拆分了各种功能划分为单独的服务器,可以有效降低单点故障,加强了集群的可持续性和系统的可用性,避免了单个系统故障可能引起的”雪崩效应“;
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这样的代理数据库服务器;
网友评论