基于多核CPU架构的网游服务器的数据分配方法及系统技术方案

技术编号:2843602 阅读:253 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种基于多核CPU架构的网游服务器的数据分配方法及系统,在多核CPU架构的网游服务器的基础上建立多组游戏线程,利用该系统,对客户端发送的游戏逻辑请求数据在不同的游戏线程上进行分配,从而发挥多核CPU运算能力优势,在单服务器的情况下有效提高运行效率,提高服务器的运算能力。

【技术实现步骤摘要】

本专利技术涉及服务器的数据分配技术,尤其涉及一种基于多核CPU架构的网游服务器的数据分配方法及系统
技术介绍
随着网络游戏的兴盛,单机版的游戏已逐渐被网络游戏所替代,为进一步满足广大玩家的需求,网络游戏平台功能越来越强大,游戏内容越来越丰富,而由此对网络服务器的运算能力要求越来越高。在服务器多核技术出现之前,对网络游戏服务器的运算能力的提高是通过采用服务器分布式架构,多台服务器通过网络连接,把游戏逻辑拆分到不同的服务器上,每个服务器处理一部分的游戏逻辑。上述方法虽可以有效解决服务器运算能力问题,但同时它也带来了其它问题,首先从程序的角度来讲,由于各个服务器逻辑模块运行在不同的进程,且跨越不同的机器,数据在各个机器间的传递通过本地局域网,速度相对线程内的通信要慢得多;其次从开发管理的角度来讲,分布式的程序开发和调试的成本很高,开发的风险比单机的程序更大;并且,网友运营商需要投入更多的成本来采购更多的机器,租用更多的机柜,增加了运营成本。
技术实现思路
本专利技术要解决的技术问题是提供一种基于多核CPU架构的网游服务器的数据分配方法,能够有效利用多核CPU技术来提高服务器的运算能力。为解决上述技术问题,本专利技术的目的是通过以下技术方案实现的本专利技术提供一种基于多核CPU架构的网游服务器的数据分配方法,包括接收客户端发送的连接请求,判断得到该连接请求所属的游戏线程组后,并将该连接请求发送至该线程组中的线程上;接收连接请求的线程处理该请求,建立与客户端的连接; 接收客户端新的游戏逻辑请求,将其发送至客户端所连接的线程处理。其中,判断得到接收的连接请求所属的游戏线程组后,进一步判断得到该线程组中负载最轻的线程,并将该连接请求发送至该线程上。其中,该方法进一步包括定时计算每个线程的负载程度,将负载较重的线程所连接的至少一个客户端连接到负载较轻的线程上。其中,该方法进一步包括将线程完成的处理结果反馈至所连接的客户端。其中,该方法进一步包括接收到客户端发送的跨越游戏线程的请求时,将原来游戏逻辑请求数据从原来连接的游戏线程发送到客户端欲跨越到达的新的游戏世界所属的游戏线程上。本专利技术提供一种基于多核CPU架构的网游服务器的数据分配系统,包括数据接收存储单元、数据分配管理单元;数据接收存储单元,用于接收并存储客户端发送的游戏逻辑请求数据;数据分配管理单元,用于读取数据接收单元中的游戏逻辑请求数据,并通过判断该请求数据所属的游戏世界,获得对应的处理该请求数据的游戏线程组,将游戏逻辑请求数据发送至该游戏线程组中的线程上。其中,数据分配管理单元在判断得到所接收的游戏逻辑请求数据所属的游戏线程组之后,进一步判断得到游戏线程组中的负载最轻的游戏线程,将游戏逻辑请求数据发送至该游戏线程。其中,该系统还包括数据动态调配单元,用于定时计算每个游戏线程组中的游戏线程的负载程度,将负载较重的游戏线程所连接的部分客户端连接到其它负载较轻的游戏线程上。其中,数据接收存储单元的功能进一步包括接收并存储处理完成的游戏逻辑请求数据;数据分配管理单元的功能进一步包括读取数据接收存储单元中已处理完成的游戏逻辑请求数据,将处理完成的数据反馈给客户端。其中,所述数据分配管理单元的功能进一步包括判断得到从数据接收存储单元中所读取的游戏逻辑请求数据为跨越游戏线程的请求时,将原来的游戏逻辑请求数据,从原来连接的游戏线程组发送到客户端欲跨越到的新的游戏世界所属的游戏线程组。以上技术方案可以看出,由于本专利技术利用多核CPU技术,在一个服务器上采用多个游戏线程组的情况下,充分利用多核CPU的运算能力,对客户端发送的游戏逻辑请求数据按照客户所在的不同游戏世界在不同的游戏线程上进行分配,并运行在一个机器上,本专利技术中各游戏线程共享一个内存,服务器各个逻辑模块运行在同一个进程中的多个线程上,线程间的切换代价很低,各个模块间相互访问时,网络传输速度提高了很多,与现有技术中为提高运算能力而架构多台服务器相比,本专利技术在单个服务器多线程架构的情况下,有效提高了运算速度,降低了运营成本。进一步,为避免游戏线程组中的某些线程负载过重,本专利技术通过定时计算每个线程的负载程度,将负载较重的线程所连接的至少一个客户端连接到负载较轻的线程上,使得客户端发送至服务器的游戏逻辑请求数据在游戏线程上得到更合理的分配,更有效地提高了服务器的预算能力。附图说明图1为本专利技术实施例一中的方法流程图;图2为本专利技术实施例一中的系统结构框图;图3为本专利技术实施例二中的方法流程图;图4为本专利技术实施例三中的方法流程图;图5为本专利技术实施例三中的系统结构框图; 图6为本专利技术实施例四中的方法流程图。具体实施例方式本专利技术的核心思想是在多核CPU架构的网游服务器的基础上建立多组游戏线程,通过IO请求管理线程(输入输出请求管理线程)对客户端发送的游戏逻辑请求数据在不同的游戏线程上进行分配,从而发挥多核CPU运算能力优势,在单服务器的情况下有效提高运行效率。本专利技术中,为了最大限度地利用CPU多核可执行多线程的特性,系统初始化时,将执行游戏逻辑计算等操作的游戏线程根据需要分为若干组,将一个游戏分为若干个游戏世界,每一组游戏线程对应一个游戏世界,而该组中的每一线程处理对应游戏世界里特定的对象。为使本专利技术的目的、技术方案及优点更加清楚明白,以下结合具体实施例并参照附图对本专利技术作详细描述。实施一,参见附图1,为实现专利技术目的,本专利技术提供的方法具体流程如下步骤101IO请求队列(输入输出请求队列)接收客户端的连接请求,IO请求管理线程读取IO请求队列接收的该请求;其中,IO请求队列为用于存储客户端发送的请求数据及各游戏线程处理后反馈的数据包;IO请求管理线程为用于管理IO请求队列中的数据,用于分配游戏线程来处理客户端的请求;其中,用户在客户端向游戏服务器发送连接请求;IO请求管理线程随时监听IO请求队列,当发现IO请求队列中有请求数据包时,就读取该数据包;步骤102IO请求管理线程判断得到所读取的数据包为连接请求,则进一步通过判断该请求所属的游戏世界获得该请求欲连接的游戏线程组,并将该连接请求随机发送至该线程组中的线程上;其中,所述的游戏世界为系统初始化时将一个游戏分为的不同的几个部分,一个游戏线程组对应一个游戏世界,而每个线程组中的每个线程又分别处理所属游戏世界里对象,例如一个游戏包括A、B、C三幅地图,每一幅地图定义为一个游戏世界,设置三组游戏线程组,每个线程组分别对应一个游戏世界,而线程组中包括的线程处理对应游戏世界中的对象;步骤103接收到连接请求的线程处理该请求信息,建立客户端与服务器的连接;步骤104当IO请求管理线程读取到IO请求队列新的游戏逻辑请求时,判断得到该游戏逻辑所属的线程后,将该请求发送至该线程处理;步骤105接收游戏逻辑请求的线程处理完该请求后,将处理结果发送至IO请求队列,IO请求管理线程读取到该处理结果并将其反馈给客户端;其中,IO请求队列中新的游戏逻辑请求为客户端在与服务器完成连接后,客户端向服务器发送的新的游戏逻辑请求数据。例如如果客户端向IO请求队列发送的属于游戏世界A的游戏逻辑请求数据,如果是连接请求数据,IO请求管理线程将判断出该请求数据属于游戏世界A,处理游戏世界A的线程组为游戏线程组a,则将该连接请求数本文档来自技高网...

【技术保护点】
一种基于多核CPU架构的网游服务器的数据分配方法,其特在于,包括:接收客户端发送的连接请求,判断得到该连接请求所属的游戏线程组后,并将该连接请求发送至该线程组中的线程上;接收连接请求的线程处理该请求,建立与客户端的连接; 接收客户端新的游戏逻辑请求,将其发送至客户端所连接的线程处理。

【技术特征摘要】
1.一种基于多核CPU架构的网游服务器的数据分配方法,其特在于,包括接收客户端发送的连接请求,判断得到该连接请求所属的游戏线程组后,并将该连接请求发送至该线程组中的线程上;接收连接请求的线程处理该请求,建立与客户端的连接;接收客户端新的游戏逻辑请求,将其发送至客户端所连接的线程处理。2.根据权利要求1所述的基于多核CPU架构的网游服务器的数据分配方法,其特征在于判断得到接收的连接请求所属的游戏线程组后,进一步判断得到该线程组中负载最轻的线程,并将该连接请求发送至该线程上。3.根据权利要求2所述的基于多核CPU架构的网游服务器的数据分配方法,其特征于,该方法进一步包括定时计算每个线程的负载程度,将负载较重的线程所连接的至少一个客户端连接到负载较轻的线程上。4.根据权利要求1至3任一所述的基于多线程构架的网游服务器的数据分配方法,其特征在于,该方法进一步包括将线程完成的处理结果反馈至所连接的客户端。5.根据权利要求1至3任一所述的基于多核CPU架构的网游服务器的数据分配方法,其特征在于,该方法进一步包括接收到客户端发送的跨越游戏线程的请求时,将原来游戏逻辑请求数据从原来连接的游戏线程发送到客户端欲跨越到达的新的游戏世界所属的游戏线程上。6.一种基于多核CPU架构的网游服务器的数据分配系统,其特征在于,包括数据接收存储单元、数据分配管理单元;数据接收存储单元,用于接收并存储客户端发送的游戏逻辑请求数据;数据...

【专利技术属性】
技术研发人员:刘思亮丘建荣
申请(专利权)人:北京金山软件有限公司北京金山数字娱乐科技有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1