云时代架构读后感2

现代生活中,基本上每个人都会或多或少的接触一些游戏,而玩游戏的目的主要是为了娱乐、为了开心,所以游戏体验显得十分重要。

如果遇到游戏体验极差的情况,玩家们可能并没有深入的去想这是什么原因造成的,而通过阅读这篇文章,你可能会了解到:这可能是研发方面的问题,设计者没有从根本的设计方案上去思考解决问题。根本原因还是系统设计方案有问题,也就是说,技术上是比较弱的。

作为一个游戏来说,高可用性是必须的,而想要达到高可用性,必须要有一个好的架构设计。

现代电子游戏,基本上都会使用一定的网络功能。从验证正版,到多人交互等等,都需要架设一些专用的服务器,以及编写在服务器上的程序。

因此,游戏服务器端软件的架构,本质上也是游戏服务器这个特定领域的软件架构。

而一个万能的架构,必定是无能的架构。一个优秀的架构,则是正好把握了对应业务领域的核心功能产生的。

而阿里的高可用架构大体分为四层:包括用户层,网络层,服务层和运维层。

在用户层上,主要设计了错误重试的方案,还有就是要做业务分离,因为游戏中有些业务是不被玩家重视,所以分为重视业务和非重视业务,这样做的好处,假设非核心业务系统出现故障,它并不影响核心业务系统,因为它们之间是通过接口调用的,并不共享相同的资源。

同时阿里还设计了异地多活体架构,这个新架构和老架构相比具有几个特点:

1、业务层数据同步。

2、二次读取。

3、可重复生成全局唯一数据。

运维层主要实现了360度监控,整体方案从上到下分为五层:业务层、应用服务层、接口调用层、基础组件层、基础设施层。

而基于游戏领域的功能特征,对服务器端系统来说,有以下几个特殊的需求:

1,对于游戏数据和玩家数据的存储

2,对玩家数据进行数据广播和同步

3,把一部分游戏逻辑在服务器上运算,做好验证,防止外挂。

服务器端往往会关注对电脑内存和CPU的使用,以求在特定业务代码下,能尽量满足承载量和响应延迟的需求。

最基本的做法就是“空间换时间”,用各种缓存的方式来以求得CPU和内存空间上的平衡。

内存架构:主要决定服务器如何使用内存,以最大化利用服务器端内存来提高承载量,降低服务延迟。

逻辑架构:设计如何使用进程、线程、协程这些对于CPU调度的方案。选择同步、异步等不同的编程模型,以提高服务器的稳定性和承载量。可以分区分服,也可以采用世界服的方式,将相同功能模块划分到不同的服务器来处理。

 

posted @ 2019-03-17 10:59  但为君故。  阅读(154)  评论(0编辑  收藏  举报