一种资源数据共享方法、服务器及系统技术方案

技术编号:12196388 阅读:113 留言:0更新日期:2015-10-14 03:56
本发明专利技术提供了一种资源数据共享方法、服务器及系统,预先配置资源配置文件,读取所述资源配置文件中的所述预设的键值和所述索引名称;根据所述预设的键值向操作系统请求内存空间创建共享内存;从磁盘中将所述索引名称所对应的资源数据加载到所述共享内存,向同一台物理机的各个场景服务器的进程共享所述资源数据。同一台物理机的各个场景服务器的进程共享内存从磁盘中所加载的所述资源数据,所述资源数据无需被各个不同的场景服务器的进程从磁盘中重复加载,也无需重复占用物理机给各个场景服务器所分配的物理内存,节省物理机的内存空间,提高物理机的利用率。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别是涉及一种资源数据共享方法、服务器及系统
技术介绍
网络游戏服务器是指与网络游戏客户端相对应,安装在互联网数据中心(Internet Data Center,IDC)的硬件上,为网络游戏客户端提供数据转发与逻辑处理服务的程序。经典的网络游戏服务器包括一个总控服务器与多个场景服务器。其中,场景服务器主要处理网络游戏中非全局性的逻辑数据,处理不同的局部场景游戏逻辑数据。随着计算机技术的发展,一台物理机可以配备多个CPU核心,多核CPU的应用,推动了数据并行计算的发展,进而提高了网络游戏服务器的逻辑数据处理能力。理论上,一台物理机可以部署与CPU核心数量相同的场景服务器。当多个场景服务器进程启动时,每个场景服务器向操作系统请求一个物理内存,各个场景服务器从磁盘将各自所需的逻辑数据加载到所分配的物理内存。在场景服务器运行时,从其物理内存中读取运行所需的逻辑数据进行处理,每个场景服务器所加载的逻辑数据之间相互独立。对于同一个网络游戏来说,不同的场景服务器所加载的逻辑数据中,都包含有策划配置数据、美术资源数据与地图资源数据等多种相同的逻辑数据。在这种情况下,上述各个场景服务器都包含的相同的逻辑数据会被每个场景服务器从磁盘中加载到各自的物理内存中存储,这样就导致相同的逻辑数据被重复加载,并占用多个物理内存,造成物理内存大量浪费,降低了物理机的利用率。
技术实现思路
有鉴于此,本专利技术提供了一种资源数据共享方法、服务器及系统,资源加载服务器将同一个物理机的各个场景服务器的进程所需的相同的逻辑数据作为资源数据加载到其所创建的共享内存,向各个场景服务器的进程共享所述资源数据,节省物理机的物理内存。本专利技术实施例第一方面提供了一种资源数据共享方法,应用于资源加载服务器,预先配置资源配置文件,所述资源配置文件包括预设的键值和资源数据的索引名称,所述资源数据为同一个物理机的各个场景服务器的进程所需的相同的逻辑数据,所述方法包括:读取所述资源配置文件中的所述预设的键值和所述索引名称;根据所述预设的键值向操作系统请求内存空间创建共享内存;从磁盘中将所述索引名称所对应的资源数据加载到所述共享内存,向同一台物理机上的各个场景服务器的进程共享所述资源数据。本专利技术实施例第一方面的第一种可能的实施方式中,所述向各个场景服务器的进程共享所述资源数据包括:当各个场景服务器的进程通过所述预设的键值访问所述共享内存时,将所述资源数据映射到各个场景服务器的内存空间。本专利技术实施例第一方面的第二种可能的实施方式中,所述从磁盘中将所述索引名称所对应的资源数据加载到所述共享内存后还包括:设置一个信号量并创建与所述信号量对应的信号量键值,所述信号量的初始值与所述物理机上所运行的场景服务器的进程的个数相同;将所述信号量根据所述信号量键值存储至操作系统的内存空间,以便所述各个场景服务器的进程根据所述信号量键值从所述操作系统的内存空间检测所述信号量,当所述信号量存在,且对所述信号量执行wait操作成功后,执行进程启动。结合本专利技术实施例第一方面至第一方面的第二种可能的实施方式,在第三种可能的实施方式中,所述资源数据包括:策划配置数据、美术资源数据和地图资源数据。本专利技术实施例第二方面提供了一种资源数据共享方法,应用于各个场景服务器,所述方法包括:执行进程启动;读取资源加载服务器预先配置的资源配置文件中的所述预设的键值,所述资源配置文件包括预设的键值和资源数据的索引名称,所述资源数据为同一个物理机的各个场景服务器的进程所需的相同的逻辑数据;根据所述预设的键值访问共享内存,所述共享内存是所述资源加载服务器根据所述预设的键值向操作系统请求内存空间创建的,所述共享内存存储有所述资源加载服务器根据所述索引名称从磁盘中加载的所述资源数据; 将所述共享内存中的所述资源数据映射到内存空间。本专利技术实施例第二方面第一种可能的实施方式中,所述执行进程启动包括:接收启动指令,执彳丁进程启动。本专利技术实施例第二方面第二种可能的实施方式中,所述执行进程启动包括:从所述资源加载服务器获得信号量键值;每隔预定时间根据所述信号量键值从操作系统的内存空间检测所述信号量;当所述信号量存在,且对所述信号量执行wait操作成功后,执行进程启动。本专利技术实施例第三方面提供了一种资源加载服务器,所述服务器包括:配置单元,用于预先配置资源配置文件,所述资源配置文件包括预设的键值和资源数据的索引名称,所述资源数据为同一个物理机的各个场景服务器的进程所需的相同的逻辑数据;第一读取单元,用于读取所述资源配置文件中的所述预设的键值和所述索引名称;创建单元,用于根据所述预设的键值向操作系统请求内存空间创建共享内存;共享单元,用于从磁盘中将所述索引名称所对应的资源数据加载到所述共享内存,向同一台物理机上的各个场景服务器的进程共享所述资源数据。本专利技术实施例第三方面第一种可能的实施方式中,所述共享单元,具体用于当各个场景服务器的进程通过所述预设的键值访问所述共享内存时,将所述资源数据映射到各个场景服务器的内存空间。本专利技术实施例第三方面第二种可能的实施方式中,所述服务器还包括:设置单元,用于设置一个信号量并创建与所述信号量对应的信号量键值,所述信号量的初始值与所述物理机上所运行的场景服务器的进程的个数相同;存储单元,用于将所述信号量根据所述信号量键值存储至操作系统的内存空间,以便所述各个场景服务器的进程根据所述信号量键值从所述操作系统的内存空间检测所述信号量,当所述信号量存在,且对所述信号量执行wait操作成功后,执行进程启动。本专利技术实施例第四方面提供了一种场景服务器,所述服务器包括:启动单元,用于执行进程启动;第二读取单元,用于读取所述资源加载服务器预先配置的资源配置文件中的所述预设的键值,所述资源配置文件包括预设的键值和资源数据的索引名称,所述资源数据为同一个物理机的各个场景服务器的进程所需的相同的逻辑数据;访问单元,用于根据所述预设的键值访问共享内存,所述共享内存是所述资源加载服务器根据所述预设的键值向操作系统请求内存空间创建的,所述共享内存存储有资源加载服务器根据所述索引名称从磁盘中加载的所述资源数据;映射单元,用于将所述共享内存中的所述资源数据镜像到内存空间。本专利技术实施例第四方面第一种可能的实施方式中,所述启动单元包括:接收子单元,用于接收启动指令;第一启动子单元,用于执行进程启动。本专利技术实施例第四方面第二种可能的实施方式中,所述启动单元包括:获取子单元,用于从所述资源加载服务器获得信号量键值;检测子单元,用于每隔预定时间根据所述信号量键值从操作系统的内存空间检测所述信号量;第二启动子单元,用于当所述信号量存在,且对所述信号量执行wait操作成功后,执行进程启动。本专利技术实施例第五方面提供了一种资源数据共享系统,所述系统包括本专利技术实施例第三方面至第三方面第二种可能的实现方式所述的资源加载服务器以及本专利技术第四方面至第四方面第二种可能的实施方式所述的场景服务器。由上述内容可知,本专利技术有如下有益效果:本专利技术提供了一种资源数据共享方法、服务当前第1页1 2 3 4 5 本文档来自技高网...

【技术保护点】
一种资源数据共享方法,应用于资源加载服务器,其特征在于,预先配置资源配置文件,所述资源配置文件包括预设的键值和资源数据的索引名称,所述资源数据为同一个物理机的各个场景服务器的进程所需的相同的逻辑数据,所述方法包括:读取所述资源配置文件中的所述预设的键值和所述索引名称;根据所述预设的键值向操作系统请求内存空间创建共享内存;从磁盘中将所述索引名称所对应的资源数据加载到所述共享内存,向同一台物理机上的各个场景服务器的进程共享所述资源数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:莫锡昌张正
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1