性能:很多游戏服务器,都会使用异步非阻塞的方式来编程 。因为异步非阻塞可以很好的提高服务器的吞吐量,而且可以很明确的控制多个用户任务并发下的代码执行顺序,从而避免多线程锁之类的复杂问题 。所以这个框架我也希望是以异步非阻塞作为基本的并发模型 。这样做还有另外一个好处,就是可以手工的控制具体的进程,充分利用多核 CPU 服务器的性能 。当然异步代码可读性因为大量的回调函数,会变得很难阅读,幸好我们还可以用“协程”来改善这个问题 。 扩展性:支持服务器之间的通信,进程状态管理,类似 SOA 的集群管理 。自动容灾和自动扩容,其实关键点是服务进程的状态同步和管理 。我希望一个通用的底层,可以把所有的服务器间调用,都通过一个统一的集权管理模型管理起来,这样就可以不再每个项目去关心集群间通信、寻址等问题 。一旦需求明确下来,基本的层级结构也可以设计了:

文章插图
最后,整体的架构模块类似:

文章插图
通信模块
对于通信模块来说,需要有灵活的可替换协议的能力,就必须按一定的层次进行进一步的划分 。对于游戏来说,最底层的通信协议,一般会使用 TCP 和 UDP 这两种,在服务器之间,也会使用消息队列中间件一类通信软件 。框架必须要有能同事支持这几通信协议的能力 。故此设计了一个层次为:
推荐阅读
-
家村|【流动书香】流动图书服务车走进潮水镇富阳耿家村
-
[上架学姐]轻松赶走驼背等不良体态,人变得有气质多了,等学会这招经典动作
-
射门中国中甲大概率也会分组,沈阳主帅:引援停滞盼足协早日官宣
-
-
山西启动数字房产系统建设 “一张网”覆盖楼市监管全领域
-
「科技生活大侠」下一代团队协作应用将崛起,海外疫情加速实时互动场景多元化
-
-
央视新闻客户端|安徽歙县因暴雨推迟两门高考科目 定于9日补考
-
「野鸡」北方农村养殖有什么不担心销路? 这些需求风险很低!
-
-
178游戏网|失落的龙约:金币龙*4 AUTO 真辉龙—超级无寡妇
-
电竞虎LOL|九腥红再度登顶,云顶10.23版本美服三大S级阵容
-
-
河北省|今年上半年河北省快递服务企业业务量同比增长44.6%
-
【龙岭迷窟】《龙岭迷窟》还未完结,又一部《鬼吹灯》即将来袭,演员阵容让网友期待
-
威尔士队|坐实威尔士第一人!贝尔创造的辉煌,前辈们60年来难以匹敌
-
躺鸡萌妹■Mobile》再破纪录!,3月中国手游在海外市场收入排行榜单!《PUBG
-
-
[新榜]这届高考生被逼疯了?励志条漫获4956在看
-