基于移动终端的服务器优化方法及服务器系统的制作方法

文档序号:7805263阅读:114来源:国知局
基于移动终端的服务器优化方法及服务器系统的制作方法
【专利摘要】本发明提供了基于移动终端的服务器优化方法及服务器系统,在TCP长连接的基础上设计出一种新的技术架构,由TCP短连接取代长连接;在游戏服务器中开辟共享内存,通过设置数据库缓存服务器,在数据访问层面实现了“读写分离”。另外,避免了因服务器宕机所带来的数据回档,提升手机游戏的用户体验。在游戏服务器中设置基于生产者消费者模型的环形缓冲区,在游戏服务器中设置有用于监听移动终端的连接状态的监听模块,这种从网络连接模式、数据缓存、网络缓冲区结构等多方面做出改进,进一步提升手机游戏的用户体验。
【专利说明】基于移动终端的服务器优化方法及服务器系统
【技术领域】
[0001]本发明涉及网络游戏服务器【技术领域】,特别涉及基于移动终端的服务器优化方法及服务器系统,以提升服务的并发和I/o处理能力。
【背景技术】
[0002]移动终端或者叫移动通信终端是指可以在移动中使用的计算机设备,广义的讲包括手机、笔记本、POS机甚至包括车载电脑。大部分情况下是指手机或者具有多种应用功能的智能手机。移动终端设备使用无线通信技术进行数据传输,所处的网络环境复杂多变,移动终端在与服务器交互过程中,时常出现断开连接、读写效率较低以及网络性能有限等现象。对于智能手机而言,根据手机游戏的特点,移动终端不需要频繁与服务器交互,但移动终端用户对整个通信系统的并发性和健壮性、服务器承载能力及网络I/o效率都有较高的要求。现有技术中,智能手机作为网络游戏终端通常与网络游戏服务器端保持长连接,本发明人认为,这种长连接模式在手机游戏用户数量突增时有可能出现连接瓶颈,因此有必要从网络连接模式、数据缓存、网络缓冲区结构等多方面做出改进,设计出高并发、高I/o处理能力的基于移动终端的服务器优化方法,进一步提升手机游戏的用户体验。

【发明内容】

[0003]本发明针对现有技术存在的缺陷或不足,提出一种基于移动终端的服务器优化方法及服务器系统,以提升服务的并发和I/o处理能力。
[0004]本发明的技术方案:
[0005]基于移动终端的服务器优化方法,其特征在于,所述方法包括:
[0006]移动终端向游戏服务器发起连接请求,游戏服务器接到请求后建立与移动终端的连接,当移动终端与游戏服务器之间的一次数据交互结束时,移动终端发起断开本次连接的操作,释放所占用的资源;当移动终端与游戏服务器之间有新的数据交互请求产生时,游戏服务器与移动终端再次建立新连接;
[0007]移动终端与游戏服务器之间连接过程遵循TCP协议,游戏服务器为每个与移动终端的连接预先设置一个超时时间,游戏服务器每隔一段预定时间检查每个连接是否超时,如果超时则向超时连接所对应的移动终端发送断开指示,移动终端接收到断开指示即主动断开此连接。
[0008]所述方法还包括:游戏服务器中设置有用于监听移动终端的连接状态的监听模块,预先在游戏服务器中设置某一事件及该事件发生时所执行的处理函数,在移动终端中的网络游戏运行过程中,一旦预先注册的某些事件发生时,监听模块便会根据其所对应的事件处理函数做出对应处理。
[0009]所述方法还包括:设置与游戏服务器相连接的数据库缓存服务器,并在游戏服务器中开辟出一块能够被若干个进程共享的一部分物理内存做为共享内存,该共享内存被映射到游戏服务器、数据库缓存服务器各自的进程地址空间;[0010]所述共享内存用于存储移动终端中的游戏玩家数据;数据库缓存服务器的进程启动时从数据库加载游戏玩家数据到共享内存区域,游戏服务器的进程从共享内存区域读取数据,当游戏服务器上的游戏玩家数据发生改变时,共享内存区域的数据随之发生改变,数据库缓存服务器定时或即时将更改后的游戏玩家数据写入数据库中。
[0011]所述方法还包括:在游戏服务器中设置基于生产者消费者模型的环形缓冲区,所述环形缓冲区包括接收缓冲区和发送缓冲区;环形缓冲区的读操作和写操作分别由读线程和写线程来单独管理,读线程负责从接收缓冲区中读取数据,将取出的数据返回给环形缓冲区环形队列的上层;写线程负责将数据写到发送缓冲区,然后发送到环形队列的对端。
[0012]所述方法还包括:所述数据库可与数据库缓存服务器部署到同一台计算机中,也可与数据库缓存服务器分开部署到不同的计算机中。
[0013]所述预先设置的超时时间为5分钟。
[0014]所述数据库缓存服务器每隔10分钟将更改后的游戏玩家数据写入数据库中。
[0015]基于移动终端的服务器系统,其特征在于,所述系统采用了上述的优化方法。
[0016]本发明的技术效果:
[0017]本发明提供的基于移动终端的服务器优化方法和基于移动终端的服务器优化系统从网络连接模式、数据缓存、网络缓冲区结构等多方面做出改进。
[0018]1.在TCP长连接的基础上设计出一种新的技术架构,由TCP短连接取代长连接,这种请求与应答模式系统开销小,成本低,大大提高了服务器的承载能力。
[0019]2.游戏服务器中开辟共享内存,通过设置数据库缓存服务器,在数据访问层面实现了“读写分离”。另外,避免了因服务器宕机所带来的数据回档,提升手机游戏的用户体验。
[0020]3.在游戏服务器中设置基于生产者消费者模型的环形缓冲区,所述环形缓冲区包括接收缓冲区和发送缓冲区,环形缓冲区的读操作和写操作分别由读线程和写线程来单独管理,服务器I/o性能得到显著提升。
[0021]4.游戏服务器中设置有用于监听移动终端的连接状态的监听模块,预先在游戏服务器中设置某一事件及该事件发生时所执行的处理函数,在移动终端中的网络游戏运行过程中,一旦预先注册的某些事件发生时,监听模块便会根据其所对应的事件处理函数做出对应处理。这种事件通知模式为CPU耗时运算分担了一部分压力,进一步提升手机游戏的用户体验。
【专利附图】

【附图说明】
[0022]图1是移动终端与游戏服务器之间连接过程优化示意图。
[0023]图2是游戏服务器中开辟共享内存,与数据库缓存服务器的逻辑关系示意图。
[0024]图3是环形缓冲区结构示意图。
【具体实施方式】
[0025]下面结合附图对本发明实施例做进一步的说明。
[0026]图1是移动终端与游戏服务器之间连接过程优化示意图。如图1所示,移动终端向游戏服务器发起连接请求,游戏服务器接到请求后建立与移动终端的连接,当移动终端与游戏服务器之间的一次数据交互结束时,移动终端发起断开本次连接的操作,释放所占用的资源;当移动终端与游戏服务器之间有新的数据交互请求产生时,游戏服务器与移动终端再次建立新连接。移动终端与游戏服务器之间连接过程遵循TCP协议,游戏服务器为每个与移动终端的连接预先设置一个超时时间(该超时时间可以设置为5分钟,也可根据具体系统需要设置30秒或是I分钟。),游戏服务器每隔一段预定时间检查每个连接是否超时(该预定时间可以设置为10分钟,也可根据具体需要设置。),如果超时则向超时连接所对应的移动终端发送指示,要求移动终端主动断开此连接。通常来说,手机游戏后台常见的是基于HTTP协议的实现模式,或是采用PHP技术来实施网站后台管理。根据手机游戏的特点,移动终端不需要频繁与服务器交互,TCP长连接持续占用服务端口,对系统资源消耗比较大。在这种模式下,每个用户都占有一个连接,而且大多数连接都处于激活状态,当用户数量达到一定数量级的时候,系统性能反而下降。图1所示的是在长连接的基础上设计出一种新的技术架构,由TCP短连接取代长连接,短连接简言之就是需要同时保持很多连接并且连接的建立和关闭非常频繁。短连接的优点是管理起来比较简单,存在的连接都是有效的连接,不需要额外的控制手段,有利于实现高并发。
[0027]图2是游戏服务器中开辟共享内存,与数据库缓存服务器的逻辑关系示意图。共享内存是被多个进程共享的一部分物理内存。如果多个进程都把该内存区域映射到自己的虚拟地址空间,则这些进程就都可以直接访问该共享内存区域,从而可以通过该区域进行通信。
[0028]作为本发明的进一步改进,设置与游戏服务器相连接的数据库缓存服务器,并在游戏服务器中开辟出一块能够被若干个进程共享的一部分物理内存做为共享内存,该共享内存被映射到游戏服务器、数据库缓存服务器各自的进程地址空间。所述共享内存用于存储移动终端中的游戏玩家数据;数据库缓存服务器的进程启动时从数据库加载游戏玩家数据到共享内存区域,游戏服务器的进程从共享内存区域读取数据,当游戏服务器上的游戏玩家数据发生改变时,共享内存区域的数据随之发生改变,数据库缓存服务器定时或即时将更改后的游戏玩家数据写入数据库中。
[0029]如图2所示,进程A是游戏服务器,进程B是DB缓存服务器,其中共享内存区域是玩家数据。进程B启动时从数据库加载数据到共享内存区域,进程A从共享内存区域读取数据,当进程A上的玩家数据发生改变时,共享内存区域的数据就发生了改变,进程B自然得知共享内存区域数据发生了改变,从而进程B就可以定时或即时将数据写入数据库中。通过设置DB数据缓存,进程A只负责从共享内存区域读取数据,将大量而频繁的写数据库操作交给进程B来完成,在数据访问层面实现了 “读写分离”。另外,当进程A崩溃时,由于数据还在内存中,进程B可以及时将数据写入数据库,避免了因服务器宕机所带来的数据回档。因此,缓存对于提高服务器I/O效率及稳定性有非常重要的作用。
[0030]图3是环形缓冲区结构示意图。通常,网络缓冲区结构为线性缓冲区并且读写操作与游戏逻辑处在一同个线程中,读写效率不高。另外,缓冲区读写操作与游戏逻辑都处在同一线程中,当此线程阻塞时会导致消息响应延迟,网络I/o性能降低,影响玩家体验。作为本发明的进一步改进,在游戏服务器中设置基于生产者消费者模型的环形缓冲区,所述环形缓冲区包括接收缓冲区和发送缓冲区;环形缓冲区的读操作和写操作分别由读线程和写线程来单独管理,读线程负责从接收缓冲区中读取数据,将取出的数据返回给环形缓冲区环形队列的上层;写线程负责将数据写到发送缓冲区,然后发送到环形队列的对端。如图3所示,本实施例在上述优化方法的基础上增加了一种高效的环形缓冲区,环形缓冲区基于生产者和消费者模型,生产者将数据放入数组的尾端,而消费者从数组的另一端取出数据,当达到数组的尾部时,生产者绕回到数组的头部。如果只有一个生产者和一个消费者,那么就可以做到无锁访问环形缓冲区。写指针只允许生产者访问并修改,只要写指针在更新索引之前将新的值保存到缓冲区中,则读指针将始终看到一致的数据结构。同理,读指针也只允许消费者访问并修改。
[0031]如图3所示,当读指针和写指针相等时,表明缓冲区是空的,而只要写指针在读指针后面时,表明缓冲区已满。另外,应当将缓冲区的读写操作从处理游戏逻辑的工作线程中分离出来,由一对读写线程来单独管理,读线程负责从接收缓冲区中读取数据,将取出的数据返回给上层;写线程负责将发送缓冲区的数据发送到对端。经过对网络缓冲区的优化及网络I/o与游戏逻辑的分离,服务器I/O性能得到大大提升。
[0032]事件通知模式实质上属于一种被动触发模式,系统预先注册好某一事件及事件发生时所执行的处理函数,在游戏运行过程中,当预先注册的某些事件发生时,便会根据其所对应的事件处理函数来处理对应的逻辑。作为本发明的进一步改进,在上述优化方法的基础上,将手机游戏领域通常采用的轮询模式优化为事件通知模式,即游戏服务器中设置有用于监听移动终端的连接状态的监听模块,预先在游戏服务器中设置某一事件及该事件发生时所执行的处理函数,在移动终端中的网络游戏运行过程中,一旦预先注册的某些事件发生时,监听模块便会根据其所对应的事件处理函数做出对应处理。例如,可以为一个监听套接字注册一个回调函数,每当需要调用accept O函数以打开新连接时调用这个回调函数,当接受一个新连接时,再为这个新连接的读、写以及错误事件注册对应的回调函数,当有读、写或者错误事件发生时便会由对应的回调函数来执行。这种由主动变被动的处理模式可以从复杂的游戏系统中可以单独剥离,为CPU耗时运算分担了一部分压力。
[0033]综上所述,基于移动终端的游戏服务器经过上述优化策略验证后,系统的并发性和健壮性、服务器承载能力及网络I/o效率得到显著改善,用户体验得到进一步提升。
[0034]以上所述的本发明【具体实施方式】,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所做的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
【权利要求】
1.基于移动终端的服务器优化方法,其特征在于,所述方法包括:移动终端向游戏服务器发起连接请求,游戏服务器接到请求后建立与移动终端的连接,当移动终端与游戏服务器之间的一次数据交互结束时,移动终端发起断开本次连接的操作,释放所占用的资源;当移动终端与游戏服务器之间有新的数据交互请求产生时,游戏服务器与移动终端再次建立新连接; 移动终端与游戏服务器之间连接过程遵循TCP协议,游戏服务器为每个与移动终端的连接预先设置一个超时时间,游戏服务器每隔一段预定时间检查每个连接是否超时,如果超时则向超时连接所对应的移动终端发送断开指示,移动终端接收到断开指示即主动断开此连接。
2.根据权利要求1所述基于移动终端的服务器优化方法,其特征在于,所述方法还包括:游戏服务器中设置有用于监听移动终端的连接状态的监听模块,预先在游戏服务器中设置某一事件及该事件发生时所执行的处理函数,在移动终端中的网络游戏运行过程中,一旦预先注册的某些事件发生时,监听模块便会根据其所对应的事件处理函数做出对应处理。
3.根据权利要求1所述基于移动终端的服务器优化方法,其特征在于,所述方法还包括:设置与游戏服务器相连接的数据库缓存服务器,并在游戏服务器中开辟出一块能够被若干个进程共享的一部分物理内存做为共享内存,该共享内存被映射到游戏服务器、数据库缓存服务器各自的进程地址空间; 所述共享内存用于存储移动终端中的游戏玩家数据;数据库缓存服务器的进程启动时从数据库加载游戏玩家数据到共享内存区域,游戏服务器的进程从共享内存区域读取数据,当游戏服务器上的游戏玩家数据发生改变时,共享内存区域的数据随之发生改变,数据库缓存服务器定时或即时将更改后的游戏玩家数据写入数据库中。
4.根据权利要求1所述基于移动终端的服务器优化方法,其特征在于,所述方法还包括:在游戏服务器中设置基于生产者消费者模型的环形缓冲区,所述环形缓冲区包括接收缓冲区和发送缓冲区;环形缓冲区的读操作和写操作分别由读线程和写线程来单独管理,读线程负责从接收缓冲区中读取数据,将取出的数据返回给环形缓冲区环形队列的上层;写线程负责将数据写到发送缓冲区,然后发送到环形队列的对端。
5.根据权利要求3所述基于移动终端的服务器优化方法,其特征在于,所述方法还包括:所述数据库可与数据库缓存服务器部署到同一台计算机中,也可与数据库缓存服务器分开部署到不同的计算机中。
6.根据权利要求1所述基于移动终端的服务器优化方法,其特征在于,所述预先设置的超时时间为5分钟。
7.根据权利要求3所述基于移动终端的服务器优化方法,其特征在于,数据库缓存服务器每隔10分钟将更改后的游戏玩家数据写入数据库中。
8.基于移动终端的服务器系统,其特征在于,所述系统采用了权利要求1-7所述的基于移动终端的服务器优化方法。
【文档编号】H04L29/06GK103995755SQ201410240926
【公开日】2014年8月20日 申请日期:2014年6月3日 优先权日:2014年6月3日
【发明者】王宝臣 申请人:北京乐动卓越信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1