CN101261661A - 网络游戏分布式服务器实现方法 - Google Patents
网络游戏分布式服务器实现方法 Download PDFInfo
- Publication number
- CN101261661A CN101261661A CNA2008100707888A CN200810070788A CN101261661A CN 101261661 A CN101261661 A CN 101261661A CN A2008100707888 A CNA2008100707888 A CN A2008100707888A CN 200810070788 A CN200810070788 A CN 200810070788A CN 101261661 A CN101261661 A CN 101261661A
- Authority
- CN
- China
- Prior art keywords
- server
- network game
- domain
- data object
- implementation method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种网络游戏分布式服务器实现方法,其将网络游戏系统的所有服务器分为目录服务器及其下属的承载域的服务器,然后将游戏中的数据对象分散到各个承载域的服务器中,提供低成本的远程调用,供这些数据对象通讯。本发明可以使游戏在运行中无限制扩容,可根据需要随时增加服务器,游戏的世界可以做到无限大,并可降低维护成本。
Description
技术领域
本发明涉及一种网络游戏领域,尤指一种网络游戏分布式服务器实现方法。
背景技术
网络游戏的逻辑服务器架构分为单服务器、多服务器两种。其中单服务器受制于性能,能够承载的人数有限,所以大型的网络游戏一般都采用多服务器的架构方式。
现有网络游戏的多服务器架构通常有以下几种:
1.分线(如图1所示,图中每一个长方形的实线框均代表一个服务器,下述图2、3也相同)
每个服务器提供相同的服务,多个服务器提供了多个平行的世界。比如吉比特的《问道》采用的就是这种方式。这种方案的缺点在于每个世界都不太大,无法给用户带来大量用户在同一世界交流的体验。
2.分场景(如图2所示)
每个服务器提供若干的场景的服务,多个服务器支持了一个完整的大的世界。比如韩国的《传奇》采用的就是这种方式。这种方案的缺点是:
i.成本较高,在游戏的初期、中期、后期不同场景服务器内承载的人数是不一样的。如果采用固定配置,会浪费服务器;如果采用根据时期调整服务器,会带来较高的维护成本;如果采用动态配置,设计方案会复杂,开发、维护成本都会提高。
ii.某个地图只能在一个服务器上,仍有不能承载太多的人数的问题。
iii.不能在运行中动态增加机器达到扩容的目的。
3.分线 & 分场景(如图3所示)
若干的服务器合成一组提供了一个完整的大的世界,还有若干个这样的服务器组,提供了多个大的世界。因为这种组网设计方案很复杂,开发维护都不方便,所以市面上的游戏一般不采用这种方式。这个方案过于复杂,而且并不解决上述方案中某个地图服务器不能承载太多人数的问题。
那么为什么上述现有的设计方案某个地图服务器不能承载太多的人数呢?这是因为这些方案中,地图服务器实际上不仅处理地图相关的功能,还需要处理所有发生在这个地图上的事件,处理所有在这个地图上的用户的请求(如图4所示),如果一个服务器要承载1000个用户,1个事件需要处理这1000个用户的请求,这就占用了大量的系统资源,从而导致无法承载太多的用户。
发明内容
本发明所要解决的技术问题在于提供一种可无限制扩容的网络游戏分布式服务器实现方法。
为达成上述技术问题,本发明的技术解决方案是:
一种网络游戏分布式服务器实现方法,其将网络游戏系统的所有服务器分为目录服务器及其下属的承载域的服务器,然后将游戏中的数据对象分散到各个承载域的服务器中,通过远程调用实现该数据对象通讯。
所述多个承载域的服务器可以属于一个目录服务器,而且这些承载域的服务器之间为简单堆叠。
所述的远程调用指的是通过特定的字符串结构来定义和鉴别数据对象,可以跨服务器进行查找,可上溯到目录服务器,并采取特殊符号调用数据对象。
所述定义数据对象的字符串为:
“MEMBER@DOMAIN_ID.CATALOG”即“成员@域ID.目录”。
所述特殊符号为“=>”,而进行调用的方法为:
DOMAIN_ADDRESS=>METHOD(ARGUMENTS)
本方法采用复合类型来表达返回结果。
所述复合类型包括了:整数、浮点数、字符串、二进制字串、数组或映射等类型。
本发明使用目录服务器调度数据对象,并根据各数据对象的鉴别ID对其进行查找,且可进一步查找到数据对象所在的承载域的服务器。
本发明需要创建一个域时,首先选择负载最低的承载域的服务器进行创建。
采用上述方案后,由于本发明将网络游戏系统的所有服务器分为目录服务器及其下属的承载域的服务器,将游戏中的数据对象分散到各个承载域的服务器中,然后通过低成本的远程调用,实现对这些数据对象的跨服务器查找,从而可以使本发明达到下列效果:
1.游戏的世界可以做到无限大,增强用户体验。
2.成本低,每个服务器都可以充分发挥作用,有效地利用硬件资源。
3.任何地图都承载几乎不受限制的人数(限制因素只有网络带宽)。
4.游戏可以在运行中无限扩容,可以根据需要随时增加服务器,从而降低维护成本。
5、采用复合类型来表达返回结果,由于复合类型种类丰富,能够表达大量的数据结构,增加了返回结果表达的丰富度。
附图说明
图1是现有分线式网络游戏服务器拓朴结构示意图;
图2是现有分场景式网络游戏服务器拓朴结构示意图;
图3是现有分线&分场景式网络游戏服务器拓朴结构示意图;
图4是现有地图服务器的工作方式示意图;
图5是本发明服务器的拓朴结构示意图;
图6是本发明创建域时的方式示意图;
图7是本发明可方便扩容的示意图;
图8是本发明地图域服务器的工作方式示意图。
具体实施方式
如图5所示,本发明将网络游戏系统的所有服务器分为目录服务器及其下属的承载域的服务器(即物理主机),然后将游戏中的数据对象分散到各个承载域的服务器中,提供低成本的远程调用,供这些数据对象通讯。多个承载域的服务器可以属于一个目录服务器,而且这些承载域的服务器之间可以实现简单堆叠。而根据数据对象的种类,可以将目录服务器分为地图域目录服务器、用户域目录服务器、或其它类型的目录服务器。
所述的数据对象是一个抽象概念,针对网络游戏的种类主要有以下内容:
1.用户角色
2.宠物
3.NPC
4.地图
5.仓库
6.服务(拍卖、寄售等)
这些数据对象被分散到各个承载域的服务器中后,是通过下列方式鉴别、询问或调用的。
1.通过字符串来鉴别数据对象,采用特定的字符串结构,能够实现跨服务器查找,根据目录找到目录服务器,采取特殊符号进行调用。
每个数据对象都有一个字符串作为鉴别ID,当需要跨服务器访问数据时,通过ID指明数据对象。
①字符串鉴别ID:“MEMBER@DOMAIN_ID.CATALOG”即“成员@域ID.目录”。
例如:
“2233@AX5678.u”——表示域对象(角色“AX5678”)下的成员对象2233,此外定义u目录即为用户角色目录(下同);
“c@AX5678.u”——表示域对象(角色“AX5678”)下的代表对象;
“M7356@U7BX8.m”——表示域对象(NPC“U7BX8”)下的成员对象M7356,其中定义m目录为NPC目录。
需要说明的是,上述字符串是各部分具体的含义是由游戏开发者自行定义,根据游戏中数据对象的种类,目录的种类也有所不同。
②通过ID访问数据对象:
首先根据目录找到相应的目录服务器,询问所述目录服务器中该域所在的承载域的服务器,通过iNet和承载域的服务器通讯访问成员对象。
例如:
“2233@AX5678.u”
先根据事先设置的配置信息,可以通过“u”找到目录服务器,比如202.96.150.88,通过iNet和该机器通讯,询问“AX5678”这个域对象所在的物理主机,比如202.96.160.44,再和这个物理主机通讯,要求访问“2233@AX5687.u”这个数据对象。
③调用方法:
DOMAIN_ADDRESS=>METHOD(ARGUMENTS),它不同于
本地的调用,而现有技术中采用的运算符号一般是使用“->”。
调用实际例子:
“2233@AX5687.u”=>get_name()
2.通过复合类型来表达返回结果,复合类型种类丰富,能够表达几乎一切数据结构。即在访问数据对象的方法时,返回结果通过复合类型的值来表达,提高了返回结果的表达能力。
复合类型包括了:整数、浮点数、字符串、二进制字串、数组、映射等类型,用一个约定的格式进行表达,通过这种复合类型,可以不受限制地表达丰富的内容。
例如:
整数:123、456(只由“-”、0-9阿拉伯数字组成)
浮点数:123.5、456.0,3.1415926(由整数和小数点及小数部分组成)
字符串:“a”、“doing”、“test\”quote”(由双引号封装,反斜线转义,即用反斜线区分字符串中的双引号)
二进制字串::1234:、:AB1256C7:(由冒号封装,成员用16进制表达,必须为偶数位)
数组:({1,2,3})、({1,”a”,3.2,:1234:})、({1,({2,3})})(由({})封装,成员用逗号分开,为复合类型)
映射:([1:”a”,3:”c”])、([1:”a”,2:({3,4}),”c”:([99:88])])(由([])封装,成员对用逗号分开,成员对中的值用冒号分开,每个值均为复合类型)
3.使用目录服务器调度数据对象,并提供根据鉴别ID查找数据对象所在的承载域的服务器的功能。
使用目录服务器调度数据对象时,一个目录服务器管理一组承载域的服务器,每次创建一个域时,将选择负载最低的物理主机创建域(参见图6),并提供根据鉴别ID查找数据对象所在的承载域的服务器的功能,这样可以保持负载的均衡。
采用这种方案,本发明可以实现:
1.游戏的世界可以做到无限大,增强用户体验。因为本发明不是简单的按照地图来划分服务器,而是按照目录划分服务器,并且多个承载域的服务器可以属于一个目录,而且这些承载域的服务器之间可以简单堆叠,因此一个目录下面的承载域的服务器越多,提供的处理容量也越大。
例如:用户域(user)目录服务器下有3个承载域的服务器,每个承载域的服务器可以承载1000个users,如果需要承载4000个users时,只要再增加一台机器(参看图7)。
2.成本低,每个服务器都可以充分发挥作用,有效地利用硬件资源。
3.任何地图都承载几乎不受限制的人数(限制因素只有网络带宽)。这是因为本发明将地图上的用户、事件分散到了相应的目录服务器下属的承载域的服务器上,而实际上,和地图场景本身直接相关的处理几乎不占资源(约占所有消耗资源的10%以内),这样地图域服务器就很轻松了,可以比现有系统增大10倍的处理能力(参看图8)。
4.游戏可以在运行中无限制扩容,并根据需要随时增加服务器,从而降低维护成本。
Claims (9)
1、一种网络游戏分布式服务器实现方法,其特征在于:将网络游戏系统的所有服务器分为目录服务器及其下属的承载域的服务器,然后将游戏中的数据对象分散到各个承载域的服务器中,通过远程调用实现该数据对象通讯。
2、如权利要求1所述的网络游戏分布式服务器实现方法,其特征在于:所述多个承载域的服务器可以属于一个目录服务器,而且这些承载域的服务器之间为简单堆叠。
3、如权利要求1或2所述的网络游戏分布式服务器实现方法,其特征在于:所述的远程调用指的是通过特定的字符串结构来定义和鉴别数据对象,可以跨服务器进行查找,可上溯到目录服务器,并采取特殊符号调用数据对象。
4、如权利要求3所述的网络游戏分布式服务器实现方法,其特征在于:所述定义数据对象的字符串为:
“MEMBER@DOMAIN_ID.CATALOG”即“成员@域ID.目录”。
5、如权利要求3所述的网络游戏分布式服务器实现方法,其特征在于:所述特殊符号为“=>”,而进行调用的方法为:
DOMAIN_ADDRESS=>METHOD(ARGUMENTS)
6、如权利要求1或2所述的网络游戏分布式服务器实现方法,其特征在于:通过复合类型来表达返回结果。
7、如权利要求6所述的网络游戏分布式服务器实现方法,其特征在于:所述复合类型包括了:整数、浮点数、字符串、二进制字串、数组或映射等类型。
8、如权利要求1或2所述的网络游戏分布式服务器实现方法,其特征在于:使用目录服务器调度数据对象,并根据各数据对象的鉴别ID对其进行查找,且可进一步查找到数据对象所在的承载域的服务器。
9、如权利要求8所述的网络游戏分布式服务器实现方法,其特征在于:需要创建一个域时,首先选择负载最低的承载域的服务器进行创建。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100707888A CN101261661A (zh) | 2008-03-17 | 2008-03-17 | 网络游戏分布式服务器实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100707888A CN101261661A (zh) | 2008-03-17 | 2008-03-17 | 网络游戏分布式服务器实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101261661A true CN101261661A (zh) | 2008-09-10 |
Family
ID=39962115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100707888A Pending CN101261661A (zh) | 2008-03-17 | 2008-03-17 | 网络游戏分布式服务器实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101261661A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753534A (zh) * | 2008-12-10 | 2010-06-23 | 徐文祥 | 基于集群服务器的分区自适应网络系统及其构建方法 |
CN102221929A (zh) * | 2011-06-09 | 2011-10-19 | 厦门吉比特网络技术股份有限公司 | 分布式游戏服务器系统 |
CN104735156A (zh) * | 2015-03-31 | 2015-06-24 | 北京畅游天下网络技术有限公司 | 服务器系统及分配服务器的方法 |
-
2008
- 2008-03-17 CN CNA2008100707888A patent/CN101261661A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753534A (zh) * | 2008-12-10 | 2010-06-23 | 徐文祥 | 基于集群服务器的分区自适应网络系统及其构建方法 |
CN102221929A (zh) * | 2011-06-09 | 2011-10-19 | 厦门吉比特网络技术股份有限公司 | 分布式游戏服务器系统 |
CN104735156A (zh) * | 2015-03-31 | 2015-06-24 | 北京畅游天下网络技术有限公司 | 服务器系统及分配服务器的方法 |
CN104735156B (zh) * | 2015-03-31 | 2018-11-16 | 北京畅游天下网络技术有限公司 | 服务器系统及分配服务器的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10447772B2 (en) | Managed function execution for processing data streams in real time | |
US20200285514A1 (en) | Automated reconfiguration of real time data stream processing | |
CN104618506A (zh) | 一种众包的内容分发网络系统、方法与装置 | |
CN102209087A (zh) | 在具有存储网络的数据中心进行MapReduce数据传输的方法和系统 | |
CN101631143B (zh) | 负载均衡环境中多服务器系统及其文件传输方法 | |
CN112347212A (zh) | 面向bim应用的铁路云gis平台及其搭建方法 | |
CN103795761A (zh) | 一种网络游戏数据下载方法和系统 | |
CN102880933A (zh) | 一种面向云计算的综合应急管理平台架构 | |
CN102880668A (zh) | 综合应急管理平台数据存储方法及采用该方法的平台架构 | |
CN103888499A (zh) | 一种分布式对象处理的方法及系统 | |
CN102902745A (zh) | 一种地理信息web服务集成方法 | |
CN104111924A (zh) | 一种数据库系统 | |
CN101500145A (zh) | 一种基于双向机顶盒的数字家庭公交查询系统 | |
US20150363421A1 (en) | Directories in distributed file systems | |
CN104462026A (zh) | 提供云字库服务的方法和系统 | |
CN109039913A (zh) | 虚拟路由装置和虚拟机通信系统 | |
CN101895581B (zh) | 一种基于QoS技术感知的动态web服务选择方法 | |
CN103198119A (zh) | 一种快速查找具有相同重复数据删除标识的所有链接文件的方法 | |
CN103856503B (zh) | Nas集群系统的文件数据的处理方法及nas集群系统 | |
CN101261661A (zh) | 网络游戏分布式服务器实现方法 | |
CN102999329B (zh) | 基于可扩展标记语言映射配置的活动目录接口开发方法 | |
CN106487856A (zh) | 一种网络文件存储的方法和系统 | |
CN106453822A (zh) | 基于异步加载的地图信息展示方法 | |
Joy et al. | Cooperative caching framework for mobile cloud computing | |
CN102221929A (zh) | 分布式游戏服务器系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080910 |