站务联系

一个手机游戏的服务器架构

发布时间:2021-03-13   来源:网络整理    
字号:

说起来游戏服务器的开发,是一个十分宏大的命题。到现在谁也说不清楚服务器究竟是一个何种。无非就是游戏逻辑估算,数据储存,高并发之类的话题。服务器构架更是众说纷纷,其症结在于,没有放之四海而皆准的构架。每个公司的游戏类别不同,服务器构架也就不同。新手,可以依照他人的构架获学习跟认识通常的游戏服务器都有这些功能跟设计,入门者可以依照他人构架荣获一些灵感跟启发,补充自己构架的不足。总之,这是一个互相学习的过程。下面是一个手游的服务器构架,供你们玩味一下。先上个图吧:

一个手机游戏的服务器架构

服务器构架的几个模块:

1游戏服务器,登陆服务器

2,逻辑服务器

3,用户中心服务器

4,充值服务器

5,数据库服务器

6,日志服务器。

这些模块都是分开的,可以分开布署至不同的化学服务器上。

1 登陆服务器

负责处理玩家登入的恳求。一个登录服务器对应多个游戏逻辑分区。当玩家登入的时侯,登陆服务器向用户中心服务器发送登入信息。请求对登入信息的验证。通过验证以后,返回分区地址,之后,客户端与登录服务器断掉,连接至游戏逻辑服务器。

2 逻辑服务器

对玩家的操作进行逻辑处理。逻辑服务器是整个游戏的血管。它的工作效率直接影响玩家在游戏中的感受,所以对它的要求就是速率,速度,快速返回处理结果。为了达到满足要求的速率,逻辑服务器的大部分操作应当在显存中操作,避免IO操作,IO操作可以放在另外的句柄中进行。说是大部分游戏服务器,是因为玩家在第一次登录的时侯可能会从数据库读取所要用到的数据。在图中,大家听到了缓存,缓存的作用就是把数据放到显存中。当玩家退出时,它的数据也会在缓存中保存一段时间,在一定时间内,玩家重新登录,将不会再再次从数据库读取数据。在逻辑服务器中对数据库的操作可以先放到一个队列,一个句柄负责从这个队列取数据,并发送至数据库服务器,这样即降低了逻辑服务器的压力,也保证了数据处理的效率。逻辑服务器的日志也不在逻辑服务器出库,同样的发送至日志服务器处理。还有一种方式是以一种特定格式的形式,记录至本地文件中,再启一个进程,读取这个文件,然后出库。

3 用户中心服务器

现在这些游戏都对用户进行了集中管理。这便于了对用户提供更好的服务,比如储值,活动,礼包发放,新游戏导出用户等。有的游戏公司可能会用用户中心的数据发展游戏营运平台。这部份与游戏逻辑服务器分开,也降低了游戏逻辑服务器的压力。

4 充值服务器

充值是游戏收入的惟一方法了,所以这个功能应当流畅,毫无压力。如果因为网路或服务器功耗成因,导致玩家储值不了,会直接影响利润的。所以储值服务器最好布署在一台单独的物理机里面。也可以多个分区使用一个储值服务器,这要视游戏数量而定。

5 数据库服务器

负责对数据出库及更新的操作。把这部份操作从逻辑服务器分离下来,就是为了减少逻辑服务器的压力,减少逻辑服务器资源的占用。而且,如果逻辑服务器忽然宕机的话,也能尽量保证数据遗失的少。为了保证对数据的更新是顺序性的,这里把数据出库的操作使用队列单线程化。

6 日志服务器

处理玩家日志的出库。日志出库便于游戏营运管理游戏,统计玩家信息。当玩家数量比较多的时侯,日志也会占用太多资源。所以把日志从逻辑服务器也分开了。因为日志也是插入操作,所以可以开几个句柄进行并发插入至数据库。线程数要按照你数据库的连接池的最大连接数进行设置。要不然会导致连结资源被占完。导致数据插入不了数据库。

下一回聊聊游戏中的并发吧!

图说天下

×
二维码生成