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

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

文章插图
通信模块
对于通信模块来说,需要有灵活的可替换协议的能力,就必须按一定的层次进行进一步的划分 。对于游戏来说,最底层的通信协议,一般会使用 TCP 和 UDP 这两种,在服务器之间,也会使用消息队列中间件一类通信软件 。框架必须要有能同事支持这几通信协议的能力 。故此设计了一个层次为:
推荐阅读
-
-
成龙 |息影38年的影后,只有成龙才能请她出山,仅出镜一分钟依然被认出
-
同比增长|佳电股份:前三季度净利预增37%-45%
-
美家美宿@【泰式柠檬凤爪】的做法+配方,爽口解馋零食,酸辣美味停不下来
-
-
陈楚生自曝家里曾卖拖鞋,得知张远家拖鞋需求大,感叹错失大客户
-
-
环球时报|1月乌克兰客机坠毁最新调查结果:第一枚导弹击中后乘客本还活着
-
-
穿越火线手游赛事|联盟“百花齐放”时代来临,双冠R.LGD只是开始
-
直播吧官方球员将在酒店集中住宿,德媒:拜仁明日恢复团队训练
-
青年|王者荣耀:李信世冠皮肤上线后,李信玩家集体后悔了!
-
崛起我的国|强国真正目标浮出水面,印军醒悟后为时已晚,班公湖果然是个幌子
-
|钓鱼时鱼竿卡住怎么办?蛮力容易弄断鱼竿,渔具店老板给涨知识
-
软件:品高软件冲刺科创板 募资金额近5成拟建总部大楼
-
『阿梁1994』无人可以幸免,中国粮食储备还够14亿人吃多,假如全球疫情大爆发
-
新华网|山西公布疾控机构核酸收费标准:60元每人次,自愿检测
-
银行|《心居》三大意外:冯晓琴有私生子,顾清俞吻懵展翔,冯茜茜暧昧顾昕
-
说说校园欺凌给你或者当时你认识的小朋友带来了怎么样的影响作为当事人或者其父母老师,应该怎样解决此事
-
适量|美味家常菜,鲜香下饭,好吃好做,全家老少都爱吃