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

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

文章插图
通信模块
对于通信模块来说,需要有灵活的可替换协议的能力,就必须按一定的层次进行进一步的划分 。对于游戏来说,最底层的通信协议,一般会使用 TCP 和 UDP 这两种,在服务器之间,也会使用消息队列中间件一类通信软件 。框架必须要有能同事支持这几通信协议的能力 。故此设计了一个层次为:
推荐阅读
-
-
看了隐秘的角落的你,六峰山景区其实早有预防,让景区工作人员崩溃无言
-
-
-
汽研社▲续航才400公里,难怪找到了比亚迪,丰田纯电SUV性能曝光
-
笑声快车|穿半筒靴舞蹈,腿细到我慌了,她是王思聪都不敢惹的京城四美之首
-
「电视剧」电视剧收视率排行榜Top3:《清平乐》只能第二,第一高达1.95%
-
独生子女|好福利!独生子女家庭领钱啦!凭借这个“红本本”,1万奖励到账
-
[美国]外媒称连花清瘟成分只含薄荷醇,以岭药业回应
-
?汪峰伤得最深的女人,不是章子怡,也不是葛荟婕,而是已经离世的她
-
-
-
央视新闻客户端|江苏升级发布淮河江苏段洪水橙色预警
-
军械武器控|叙利亚缴获中国CQ步枪?其实它们可能来自这里
-
ZAKER精选|北京:对电影院等密闭式场所要谨慎开放
-
-
[周洁琼]周洁琼穿衣很朴素,虽然是简单的基础款,却穿出了自己的风格
-
空心|恐怕只有华为了,2020年还敢出这样配置的手机来割韭菜的
-
地铁车厢也要“静音”了,12月1日起上海地铁禁止手机外放
-