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

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

文章插图
通信模块
对于通信模块来说,需要有灵活的可替换协议的能力,就必须按一定的层次进行进一步的划分 。对于游戏来说,最底层的通信协议,一般会使用 TCP 和 UDP 这两种,在服务器之间,也会使用消息队列中间件一类通信软件 。框架必须要有能同事支持这几通信协议的能力 。故此设计了一个层次为:
推荐阅读
-
【上观新闻】富豪包机赴戛纳度假被遣返:付个罚款而已,疫情之下
-
-
无极桩|克洛普:两支德国球队会师欧冠决赛?为什么不呢
-
-
茅台成为A股赢家|茅台窝案背后:13名高管接连落马警示靠企吃企问题依然严峻
-
简单观察|最冤的竟是法院?,逗鹅冤?腾讯状告老干妈大反转
-
-
-
正式启动!国家综合性消防救援队伍面向社会公开招录18665名消防
-
-
[卡卡罗特游戏解说]本以为苏烈完美,直到看到花木兰!,看“腹肌”猜英雄:梦奇一块
-
-
机关食堂|机关食堂肉价18.5元改为185元 一单天价肉引发的整改
-
典典小厨|努力学着让孩子想吃的都能搞定,坚持自己动手准备早餐
-
女人漾|00后都不敢挑战,32岁赵丽颖穿衣有多“大胆”?穿西装露“肩膀”
-
爱上搞笑菌|开心一刻:以前她可能暗恋过我,可惜现在才知道,真是有缘无分啊,原创
-
-
【宝宝食欲下降,宝宝食欲不佳,提高食欲】天热孩子食欲不好?小妙招get
-
-