CN107800741A - Mmorpg服务器架构 - Google Patents
Mmorpg服务器架构 Download PDFInfo
- Publication number
- CN107800741A CN107800741A CN201610803767.7A CN201610803767A CN107800741A CN 107800741 A CN107800741 A CN 107800741A CN 201610803767 A CN201610803767 A CN 201610803767A CN 107800741 A CN107800741 A CN 107800741A
- Authority
- CN
- China
- Prior art keywords
- server
- game
- gateway
- mmorpg
- main logic
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/352—Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/80—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
- A63F2300/807—Role playing or strategy games
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供一种MMORPG服务器架构,其主要系统包括:登陆网关,游戏网关,游戏服务器,数据库服务器,支付服务器,推送服务器,资源服务器,日志服务器。各服务器之间除日志服务器使用UDP,其他均使用TCP通讯。单游戏主逻辑服务器(GameServer)多游戏网关(GameGate)架构,各服务器功能明确,效率更高,也更易于维护。
Description
技术领域
本发明涉及游戏领域,尤其涉及一种MMORPG服务器架构。
背景技术
MMORPG游戏,即大型多人在线角色扮演游戏,是网络游戏的一种。顾名思义,此类游戏是多人同时在线、玩家间实时交互的大型游戏,这就对服务器的性能提出了更高的要求。
首先需要服务器有很强的高并发、微延迟处理能力。需要服务器能实时、准确地处理来自玩家的大量请求,例如登录请求、玩家操作请求、聊天请求、付费请求等,以往常规的服务器构架往往将这些请求放在同一个逻辑服务器上处理,例如图1中的传统服务器构架1,这会导致逻辑上互不相干的请求互相抢夺时间片,即使通过增加线程来减轻竞争压力,也会导致服务器逻辑更复杂更加难以维护。后期有些游戏使用如图1中的传统服务器架构2这种架构,一般是按地图将主逻辑服务器分离成多进程,这种架构的问题是需要频繁地在各主逻辑服务器之间同步游戏数据,在编写业务逻辑的同时需要时刻注意处在不同服务器上的玩家之间的消息同步问题,导致游戏逻辑过于复杂,容易出现各种同步bug。
其次游戏要正常有序地运行,服务器还必须有纠错、倒查、故障恢复的能力,这就需要服务器在正常运行过程中还能处理大量的日志,能实现一定程度的热更新,出现故障能快速恢复。而传统的服务器架构对这些要求更是难堪重负。
因此,现急需一种效率更高,也更易于维护的新型架构。
发明内容
为了解决现有技术中存在的问题,本发明提供一种MMORPG服务器架构,包括:
登陆网关(LoginGate),用于在所述玩家登入网络后使该玩家登入游戏;
游戏网关(GameGate),用于将玩家接入游戏的主逻辑服务器;
游戏主逻辑服务器(GameServer),用于处理所有游戏逻辑;
数据库服务器(DBServer),连接于所述登陆网关和所述游戏主逻辑服务器之间,用于持久化数据的读取及保存,将数据库中的数据加载到内存,为游戏主逻辑服务器提供数据。
支付服务器(PayServer),连接各付费平台,为游戏主逻辑服务器提供统一的付费接口;
推送服务器(PushServer),连接各推送平台,为游戏主逻辑服务器提供统一的推送接口;资源服务器(ResourceServer),用于管理所有需要的美术及音频资源;以及
日志服务器(LogServer),用于管理所有服务器从UDP发送过来的日志。
优选地,各服务器之间除日志服务器使用UDP通讯,其他均使用TCP通讯。
优选地,所述登陆网关与登录平台及数据库服务器连接,负责玩家登录认证,独立逻辑,对已在线的玩家没有任何影响。
优选地,所述游戏网关同时实现消息的过滤、转换、负载均衡功能,分担游戏主逻辑服务器对消息处理的压力。
优选地,所述游戏网关能确保即使一台游戏网关出现问题也不会影响其他游戏网关上的玩家,并且因为一台游戏网关故障而导致掉线的玩家可以自动通过另一台正常的游戏网关快速回到游戏中。
优选地,所述游戏主逻辑服务器与多个游戏网关使用TCP连接,内部主要游戏逻辑为单线程。
优选地,所述游戏主逻辑服务器收到来自游戏网关的消息后将其存于主消息队列,等待主线程(非UI线程)处理,并在主线程中处理消息队列中的消息。
优选地,所述推送服务器服统一处理推送格式。
优选地,所述推送服务器持久化日志,并给日志查看工具提供日志数据。
优选地,所述MMORPG服务器架构属于单游戏主逻辑服务器多游戏网关架构,且上述各服务器功能独立,互不影响。
有益效果:
1、将所有独立的功能模块完全分开成独立服务器,各服务器功能明确,效率更高,也更易于维护。
2.各服务器功能独立,即使其中某一个或某几个出现故障,只要游戏主逻辑服务器功能正常则玩家就可以正常进行游戏,不会受到影响,服务器容错能力大大提高。
3.各服务器有自己的消息缓存队列,在给目标服务器发送消息失败时,例如目标服务器关闭,会将消息缓存在自己的消息队列中,当目标服务器再次可用时可再逐个提交给目标服务器,这样可以保证即使某个服务器出现故障,只要重启后依然可以正确处理以前的消息,故障恢复能力得到很大的提升,而且也为热更新服务器程序提供技术保证。
4.游戏主逻辑服务器使用单线程,逻辑简单,易于维护。
附图说明
图1为现有技术中传统服务器的结构示意图;
图2为本发明实施例所述MMORPG服务器架构的结构示意图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比率,仅用以方便、明晰地辅助说明本发明实施例的目的。
本发明的MMORPG服务器架构如图2所示,属于多进程多服务器配合架构,其包括
游戏网关(GameGate),用于使玩家登入网络;
登陆网关(LoginGate),用于在所述玩家登入网络后使该玩家登入游戏;
游戏主逻辑服务器(GameServer),用于处理所有游戏逻辑;
数据库服务器(DBServer),连接于所述登陆网关和所述游戏主逻辑服务器之间,用于持久化数据的读取及保存,将数据库中的数据加载到内存,为游戏主逻辑服务器提供数据。
支付服务器(PayServer),连接各付费平台,为游戏主逻辑服务器提供统一的付费接口;
推送服务器(PushServer),连接各推送平台,为游戏主逻辑服务器提供统一的推送接口;
资源服务器(ResourceServer),用于管理所有需要的美术及音频资源;以及
日志服务器(LogServer),用于管理所有服务器从UDP发送过来的日志。
在本实施例中,各服务器之间除日志服务器使用UDP,其他均使用TCP通讯,属于单游戏主逻辑服务器多游戏网关架构。
如图2所示,登陆网关负责登录接入,与登录平台及数据库服务器连接。其处理客户端的登录请求,将客户端的登录请求进行初步处理后提交给登录平台,登录成功后通知数据库服务器该玩家登录认证成功,可以接受该客户端的接入请求,将数据库服务器返回的游戏网关的信息返回给客户端,之后客户端转去连接游戏网关,登陆网关与此客户端的交互结束,登陆网关负责玩家登录认证,独立逻辑,对已在线的玩家没有任何影响。
在本实施例中,游戏网关负责消息的过滤及转发,与游戏网关使用TCP连接,将客户端的接入请求发送给数据库服务器处理,对于已经成功登录的客户端游戏网关将继续为其转发消息,对需要转发的消息进行预处理、加解密,对客户端的请求进行过滤、检查,包括有效性及外挂检查,转发其他服务器发送给客户端的消息,必要时进行再打包、再分析等处理,分担其他服务器的压力,同时保证即使一台游戏网关出现问题也不会影响其他游戏网关上的玩家,并且因为一台游戏网关故障而导致掉线的玩家可以自动通过另一台正常的游戏网关快速回到游戏中
如图2所示,游戏主逻辑服务器是处理所有游戏逻辑的服务器,与多个游戏网关使用TCP连接。其收到来自游戏网关的消息后将其存于主消息队列,等待主线程(非UI线程)处理,在主线程中处理消息队列中的消息,在主线程中处理各逻辑管理器及生物的跑圈执行,限制每个生物个体的跑圈执行时间,尽量均分时间片,需要给客户端返回的消息通过游戏网关发送,需要角色数据时发消息给数据库服务器请求,游戏主逻辑服务器内部主要游戏逻辑为单线程,经验证单线程的主逻辑性能已经能很好地满足MMORPG对服务器处理速度的要求,而且逻辑简单易于维护。
在本实施例中,数据库服务器在启动时将数据库中的数据加载到内存,主要为游戏主逻辑服务器提供数据,注册登录成功的客户端,以便验证客户端的合法性,均衡负载,每次提供压力较小的游戏网关给客户端,数据持久化,在客户端下线时将角色数据持久化到数据库,并且尽量将所需数据均一次性加载到内存以便实现更高的存取效率。
在本实施例中,支付服务器负责与玩家付费相关的操作,连接游戏主逻辑服务器与付费平台,并建立付费相关的可追溯记录,便于倒查。
在本实施例中,推送服务器技术交底内容连接各推送平台,为游戏主逻辑服务器提供统一的推送接口,统一处理推送格式,给客户端推送消息,推送时间、推送形式可以灵活处理。
在本实施例中,资源服务器管理所有需要的美术及音频资源,接受客户端请求并将客户端需要的美术及音频资源发送给客户端,为实现请客户端提供技术保证。
以上所有服务器都通过UDP与日志服务器通讯,日志服务器负责日志的汇总及持久化,为玩家行为追踪、物品追踪等提供数据。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (10)
1.一种MMORPG服务器架构,其特征在于,包括登陆网关(LoginGate),用于在所述玩家登入网络后使该玩家登入游戏;
游戏网关(GameGate),用于将玩家接入游戏的主逻辑服务器;
游戏主逻辑服务器(GameServer),用于处理所有游戏逻辑;
数据库服务器(DBServer),连接于所述登陆网关和所述游戏主逻辑服务器之间,用于持久化数据的读取及保存,将数据库中的数据加载到内存,为游戏主逻辑服务器提供数据;
支付服务器(PayServer),连接各付费平台,为游戏主逻辑服务器提供统一的付费接口;
推送服务器(PushServer),连接各推送平台,为游戏主逻辑服务器提供统一的推送接口;
资源服务器(ResourceServer),用于管理所有需要的美术及音频资源;以及
日志服务器(LogServer),用于管理所有服务器从UDP发送过来的日志。
2.如权利要求1所述的MMORPG服务器架构,其特征在于,各服务器之间除日志服务器使用UDP通讯,其他均使用TCP通讯。
3.如权利要求1所述的MMORPG服务器架构,其特征在于,所述登陆网关与登录平台及数据库服务器连接,负责玩家登录认证,独立逻辑,对已在线的玩家没有任何影响。
4.如权利要求1所述的MMORPG服务器架构,其特征在于,所述游戏网关同时实现消息的过滤、转换、负载均衡功能,分担游戏主逻辑服务器对消息处理的压力。
5.如权利要求4所述的MMORPG服务器架构,其特征在于,所述游戏网关能确保即使一台游戏网关出现问题也不会影响其他游戏网关上的玩家,并且因为一台游戏网关故障而导致掉线的玩家可以自动通过另一台正常的游戏网关快速回到游戏中。
6.如权利要求1所述的MMORPG服务器架构,其特征在于,所述游戏主逻辑服务器与多个游戏网关使用TCP连接,内部主要游戏逻辑为单线程。
7.如权利要求6所述的MMORPG服务器架构,其特征在于,所述游戏主逻辑服务器收到来自游戏网关的消息后将其存于主消息队列,等待主线程(非UI线程)处理,并在主线程中处理消息队列中的消息。
8.如权利要求1所述的MMORPG服务器架构,其特征在于,所述推送服务器服统一处理推送格式。
9.如权利要求1所述的MMORPG服务器架构,其特征在于,所述推送服务器持久化日志,并给日志查看工具提供日志数据。
10.如权利要求1所述的MMORPG服务器架构,其特征在于,所述MMORPG服务器架构属于单游戏主逻辑服务器多游戏网关架构,且上述各服务器功能独立,互不影响。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610803767.7A CN107800741B (zh) | 2016-09-06 | 2016-09-06 | Mmorpg服务器架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610803767.7A CN107800741B (zh) | 2016-09-06 | 2016-09-06 | Mmorpg服务器架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107800741A true CN107800741A (zh) | 2018-03-13 |
CN107800741B CN107800741B (zh) | 2021-12-24 |
Family
ID=61529768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610803767.7A Active CN107800741B (zh) | 2016-09-06 | 2016-09-06 | Mmorpg服务器架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107800741B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109276883A (zh) * | 2018-09-14 | 2019-01-29 | 网易(杭州)网络有限公司 | 游戏信息的同步方法、服务端、客户端、介质及电子设备 |
CN109513206A (zh) * | 2017-09-19 | 2019-03-26 | 北京金山云网络技术有限公司 | 网络游戏的网络架构及用于网络游戏的数据转发方法 |
CN109621409A (zh) * | 2018-12-14 | 2019-04-16 | 网易(杭州)网络有限公司 | 游戏中断线重连的方法、装置、存储介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102215209A (zh) * | 2010-04-07 | 2011-10-12 | 上海乐格网络科技有限公司 | 一种用于大型多人在线角色扮演的网络游戏引擎 |
CN103023863A (zh) * | 2011-09-27 | 2013-04-03 | 广州明朝网络科技有限公司 | 服务器集群、服务器系统 |
CN105491029A (zh) * | 2015-11-26 | 2016-04-13 | 盛趣信息技术(上海)有限公司 | 游戏服务器集群 |
-
2016
- 2016-09-06 CN CN201610803767.7A patent/CN107800741B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102215209A (zh) * | 2010-04-07 | 2011-10-12 | 上海乐格网络科技有限公司 | 一种用于大型多人在线角色扮演的网络游戏引擎 |
CN103023863A (zh) * | 2011-09-27 | 2013-04-03 | 广州明朝网络科技有限公司 | 服务器集群、服务器系统 |
CN105491029A (zh) * | 2015-11-26 | 2016-04-13 | 盛趣信息技术(上海)有限公司 | 游戏服务器集群 |
Non-Patent Citations (1)
Title |
---|
谭哲锋: "大型多人在线网络游戏中无缝地图的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109513206A (zh) * | 2017-09-19 | 2019-03-26 | 北京金山云网络技术有限公司 | 网络游戏的网络架构及用于网络游戏的数据转发方法 |
CN109276883A (zh) * | 2018-09-14 | 2019-01-29 | 网易(杭州)网络有限公司 | 游戏信息的同步方法、服务端、客户端、介质及电子设备 |
CN109276883B (zh) * | 2018-09-14 | 2022-05-31 | 网易(杭州)网络有限公司 | 游戏信息的同步方法、服务端、客户端、介质及电子设备 |
CN109621409A (zh) * | 2018-12-14 | 2019-04-16 | 网易(杭州)网络有限公司 | 游戏中断线重连的方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107800741B (zh) | 2021-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7695370B2 (en) | Massively scalable multi-player game system | |
Williams | RabbitMQ in action: distributed messaging for everyone | |
KR102053630B1 (ko) | 블록체인을 이용한 트랜잭션 처리 방법 및 이를 이용한 트랜잭션 관리 서버 | |
US9795879B2 (en) | Game state save, transfer and resume for cloud gaming | |
TWI274486B (en) | Multi-user application program interface | |
US20090215541A1 (en) | Network system capable of serving a large number of interactive users | |
US20180126285A1 (en) | Engine, system and method for providing fantasy sports play | |
CN107800741A (zh) | Mmorpg服务器架构 | |
CN110839056B (zh) | 基于区块链的数据处理方法、装置及节点网络 | |
US20080039207A1 (en) | System and method for managing transfer of player rights | |
US9037725B2 (en) | Online game system, method, and computer-readable medium | |
US20210260474A1 (en) | System and method for managing transactions in a multiplayer network gaming environment | |
CN110327621A (zh) | 用于网络游戏客户端匹配的方法及设备 | |
US20140143295A1 (en) | Framework for cross-platform collaboration of activities | |
Valadares et al. | On designing and testing distributed virtual environments | |
US7606920B2 (en) | Method and apparatus for controlling communication ports for an online session of a multi-user application by associating each of the ports with a protocol and designating an active port | |
CN106453223A (zh) | 一种无缝世界游戏服务器系统 | |
CN107800740A (zh) | Mmorpg服务器热更新 | |
CN109260711A (zh) | 一种网络游戏外挂检测系统及方法 | |
US20140113727A1 (en) | Online game system, method, and computer-readable medium | |
CN109316753A (zh) | 一种组队的方法、装置及电子设备 | |
CN101751513A (zh) | 基于分布式服务器的回合制网络游戏的实现方法 | |
US20140113726A1 (en) | Online game systems, methods, and computer-readable medium | |
EP2722085A1 (en) | Online game system, method, and computer-readable medium | |
TW202029697A (zh) | 用以重複執行無服務器程式之容器控管系統及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |