CN108540324A - 登录游戏系统的方法、装置和系统 - Google Patents

登录游戏系统的方法、装置和系统 Download PDF

Info

Publication number
CN108540324A
CN108540324A CN201810325412.0A CN201810325412A CN108540324A CN 108540324 A CN108540324 A CN 108540324A CN 201810325412 A CN201810325412 A CN 201810325412A CN 108540324 A CN108540324 A CN 108540324A
Authority
CN
China
Prior art keywords
account
current
node
log
message
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
Application number
CN201810325412.0A
Other languages
English (en)
Other versions
CN108540324B (zh
Inventor
邢晓勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201810325412.0A priority Critical patent/CN108540324B/zh
Publication of CN108540324A publication Critical patent/CN108540324A/zh
Application granted granted Critical
Publication of CN108540324B publication Critical patent/CN108540324B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Pinball Game Machines (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种登录游戏系统的方法、装置和系统。其中,该方法包括:从账号分布式锁中获取当前账号登录节点上的当前登录信息,其中,账号分布式锁为存储登录信息的数据集合,当前账号登录节点为多个账号登录节点中的任意一个节点;采用当前登录信息登录游戏系统。本发明解决了现有的单点顶号登录方式导致服务器携带负载能力差的技术问题。

Description

登录游戏系统的方法、装置和系统
技术领域
本发明涉及计算机网络领域,具体而言,涉及一种登录游戏系统的方法、装置和系统。
背景技术
在用户成功登录游戏系统之后,游戏的服务器将会构建一个内存对象,用户在客户端的操作行为将会记录下来,并根据该记录数据来更新服务器中的内存对象。为保证用户数据的持久性,服务器会定时或在用户下线之后,将内存对象中存储的数据存储至可持久存储数据的媒介(例如,硬盘)中,即完成存盘操作。而为确保存储媒介中的数据的唯一性,必须确保内存对象中的数据的唯一性,在服务器运行期间,对于同一用户不允许存在多份内存对象,因此,在用户登录服务器之前,需要先将服务器中已存在的内存对象进行存盘下线,再完成新的内存对象的创建,以完成顶号操作。
对于单进程服务器,服务器的程序运行在一个进程空间中,因此,可通过将用户的客户端与同一进程空间内的内存对象进行绑定,以完成顶号登录。
对于分布式服务器,现有的顶号登录方案是通过将服务器集群中的任意一个进程作为单点,该进程称为账号中心进程,来实现顶号登录的。而现单点的处理能力限制了顶号登录的上限,影响服务器的登录负载能力。此外,单点故障会导致整个集群的顶号登录服务,不具备容灾能力。
针对上述现有的单点顶号登录方式到时服务器携带负载能力差的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种登录游戏系统的方法、装置和系统,以至少解决现有的单点顶号登录方式导致服务器携带负载能力差的技术问题。
根据本发明实施例的一个方面,提供了一种登录游戏系统的方法,包括:从账号分布式锁中获取当前账号登录节点上的当前登录信息,其中,账号分布式锁为存储登录信息的数据集合,当前账号登录节点为多个账号登录节点中的任意一个节点;采用当前登录信息登录游戏系统。
根据本发明实施例的另一方面,还提供了一种登录游戏系统的装置,包括:获取模块,用于从账号分布式锁中获取当前账号登录节点上的当前登录信息,其中,账号分布式锁为存储登录信息的数据集合,当前账号登录节点为多个账号登录节点中的任意一个节点;登录模块,用于采用当前登录信息登录游戏系统。
根据本发明实施例的另一方面,还提供了一种登录游戏系统的系统,包括:服务器集群,其中,服务器集群至少包括多个网关服务器、多个逻辑服务器;当前网关服务器从多个逻辑服务器中确定与客户端进行绑定的当前逻辑服务器,其中,当前网关服务器为多个网关服务器中任意一个服务器;当前逻辑服务器从账号分布式锁中获取与客户端对应的当前登录信息,并采用当前登录信息登录游戏系统,其中,账号分布式锁为存储登录信息的数据集合。
根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,其中,程序执行登录游戏系统的方法。
根据本发明实施例的另一方面,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行登录游戏系统的方法。
在本发明实施例中,采用部署多个账号登录节点的方式,通过从账号分布式锁中获取当前账号登录节点上的当前登录信息,并采用当前登录信息登录游戏系统,其中,账号分布式锁为存储登录信息的数据集合,当前账号登录节点为多个账号登录节点中的任意一个节点,达到了提高服务器吞吐量的目的,从而实现了提高服务器集群容灾能力的技术效果,进而解决了现有的单点顶号登录方式导致服务器携带负载能力差的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种登录游戏系统的方法流程图;
图2是根据本发明实施例的一种登录游戏系统的装置结构示意图;以及
图3是根据本发明实施例的一种可选的登录游戏系统的系统结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种登录游戏系统的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
此外,还需要说明的是,在现有的顶号登录方案是通过将服务器集群中的任意一个进程作为单点,该进程称为账号中心进程,来实现顶号登录的。其中,账号中心进程用于维护已登录游戏系统的用户列表,该用户列表通过用户的唯一标识来记录用户在服务器集群中的进程信息,例如,进程的IP和进程端口。当用户在确定的游戏进程中通过账号认证之后,向账号进程中心发起顶号登录请求。账号进程中心首先根据用户的标识检测用户是否在用户列表中,如果用户在用户列表中,则账号进程中心将用户新登录集群进程的信息记录在顶号列表中,并获取已登录的用户信息,通知用户所在的集群进程进行顶号操作。用户所在的集群进程接收到顶号操作之后将内存对象存盘下线,并通知账号进程中心。账号进程中心清除用户列表中的用户信息,并将顶号列表中的用户信息更新至用户列表中。账号进程中心在完成对用户信息的记录之后,便完成了顶号逻辑,并通知用户进程完成登录。用户进程在接收到顶号登录完成的操作之后,客户端显示登录成功的界面。如果用户列表中不存在当前用户,则账号进程中心清除用户列表中的用户信息,并将顶号列表中的用户信息更新至用户列表中。
由上述内容可知,单点的处理能力限制了顶号登录的上限,影响服务器的登录负载能力。此外,单点故障会导致整个集群的顶号登录服务,不具备容灾能力。而本申请所提供的登录游戏系统的方法可以克服上述缺陷。具体的,图1是根据本发明实施例的登录游戏系统的方法流程图,如图1所示,该方法包括如下步骤:
步骤S102,从账号分布式锁中获取当前账号登录节点上的当前登录信息,其中,账号分布式锁为存储登录信息的数据集合,当前账号登录节点为多个账号登录节点中的任意一个节点。
需要说明的是,上述当前登录信息至少包括如下之一:登录账号、登录账号对应的标识。当前账号登录节点为服务器集群中的逻辑服务器所在的节点,其中,在服务器集群中部署多个逻辑服务器作为账号登录节点,部署一个逻辑服务器作为账号中心节点,用于管理账号登录节点的网络拓扑结构。
另外,在本申请中的服务器集群至少包括逻辑服务器、数据服务器以及网关服务器,其中,网关服务器用于为客户端随机选择一个逻辑服务器来完成顶号登录,而逻辑服务器之间可通过网关服务器进行交互通讯,也可直接通过网络端口完成逻辑服务器之间的交互通讯;数据服务器可为数据库提供交互逻辑,封装不同的数据库的不同操作逻辑,并与逻辑服务器通过网络端口进行数据交互。
在一种可选的实施例中,用户通过客户端选择任意网关服务器发起网络连接请求,网关服务器在接收到客户端发送的网络连接请求之后,建立网络连接,并选择一个逻辑服务器进行顶号登录。逻辑服务器接收客户端发送的顶号登录请求,并根据顶号登录请求向数据服务器申请账号分布式锁,并从账号分布式锁中获取当前账号登录节点(即当前逻辑服务器)的当前登录信息。
此外,还需要说明的是,在步骤S102中部署了多个账号登录节点,可以有效解决单点登录的瓶颈,进而提高了服务器的吞吐量,并且,可使得顶号登录逻辑具备可扩展性,从而避免单点故障导致的集群服务器停止的问题。
步骤S104,采用当前登录信息登录游戏系统。
需要说明的是,当前登录信息存储在账号分布式锁中,而账号分布式锁是基于高性能数据库(例如,MongoDB数据库、Redis数据库)用于提供分布式互斥锁功能的数据集合,从而保证了顶号登录逻辑的唯一性和互斥性。
基于步骤S102至步骤S104所限定的方案,可以获知,通过从账号分布式锁中获取当前账号登录节点上的当前登录信息,并采用当前登录信息登录游戏系统,其中,账号分布式锁为存储登录信息的数据集合,当前账号登录节点为多个账号登录节点中的任意一个节点。
容易注意到的是,由于每个服务器的数据吞吐量是有限的,因此,在执行顶号登录的过程中部署多个账号登录节点,可使多个客户端同时发出顶号登录请求,并对多个顶号登录请求同时进行处理,提高了服务器的数据吞吐量。另外,账号分布式锁可提供分布式互斥锁功能的数据集合,从而保证了顶号登录逻辑的唯一性和互斥性。
由上述内容可知,本申请所提供的登录游戏系统的方法可以达到提高服务器吞吐量的目的,从而实现了提高服务器集群容灾能力的技术效果,进而解决了现有的单点顶号登录方式导致服务器携带负载能力差的技术问题。
需要说明的是,在从账号分布式锁中获取当前账号登录节点上的当前登录信息之前,需要建立逻辑服务器与客户端之间的连接,即完成当前账号登录节点与客户端之间的通信连接。其中,当前账号登录节点由网关服务器接收客户端发起的网络连接请求,从多个账号登录节点中确定当前账号登录节点,并由网关服务器将客户端与当前账号登录节点进行绑定。
具体的,客户端从多个网关服务器中任意选择一个网关服务器发起网络连接请求,网关服务器监听来自客户端的网络连接请求,建立网络连接,然后随机选择服务器集群中的任意一个逻辑服务器进行顶号登录,并将客户端与该逻辑服务器进行绑定,即将客户端与逻辑服务器对应的当前账号登录节点进行绑定,从而当前账号登录可接收到客户端发送的顶号登录请求,并记录用户账号对应的标识信息。
在一种可选的实施例中,在从账号分布式锁中获取当前账号登录节点上的当前登录信息之前,需要根据当前登录信息确定数据服务器中是否存在账号分布式锁。其中,可通过查询数据服务器中的数据库中是否存储有与客户端的登录账号、登录账号对应的标识相一致的登录信息,如果存在,则确定数据服务器中存储有与客户端账号对应的账号分布式锁;如果不存在,则确定数据服务器中未存储与客户端账号对应的账号分布式锁。
需要说明的是,除可根据登录账号以及登录账号对应的标识来判断数据服务器中是否存在账号分布式锁外,还可根据客户端的IP地址、端口信息等进行判断,在此不再赘述。
在一种可选的实施例中,如果根据当前登录信息确定存在账号分布式锁,则将当前登录信息存储至账号分布式锁。具体的,在确定数据服务器中存在账号分布式锁的情况下,当前账号登录节点根据当前登录信息向数据服务器发起锁请求,并从数据服务器中获取与锁请求对应的账号分布式锁。然后,当前账号登录节点通过账号分布式锁中携带的登录信息对内存对象进行存盘下线,并通过当前登录信息对内存对象进行上线,进而将当前登录信息存储至账号分布式锁中。其中,内存对象为存储有用户在客户端的操作数据的数据集合。
在另一种可选的实施例中,如果根据当前登录信息确定不存在账号分布式锁,则当前账号登录节点根据当前登录信息构建账号分布式锁,并将当前登录信息存储至账号分布式锁中。具体的,在确定数据服务器中不存在账号分布式锁的情况下,当前账号登录节点根据当前登录信息中所提供的登录账号对应的标识、登录账号、登录账号对应的IP地址以及端口信息等信息在数据服务器中的数据库中创建账号分布式锁,然后销毁客户端所存储的之前的登录信息,并将当前登录信息存储至账号分布式锁中,最后根据当前登录信息登录游戏系统。
在一种可选的实施例中,在获取到当前账号登录节点上的当前登录信息之后,当前账号登录节点进一步确定当前账号登录节点是否存在当前登录信息。其中,如果当前账号登录节点存在当前登录信息,则执行根据当前登录信息确定存在账号分布式锁的步骤;如果当前账号登录节点不存在当前登录信息,则终止当前账号登录节点的登录流程。
需要说明的是,在采用当前登录信息登录游戏系统之后,如果当前账号登录节点发生故障,则通过如下至少一种方式清除当前账号登录节点对应的账号分布式锁:根据当前账号登录节点的标识清除当前账号登录节点对应的账号分布式锁,和/或,重启当前账号登录节点,并在当前账号登录节点重启后,通过当前账号登录节点的端口信息清除当前账号登录节点对应的账号分布式锁。
在一种可选的实施例中,账号中心节点通过心跳协议可确定账号登录节点是否发生故障,并通过网络拓扑结构获取账号登录节点所上报的登录账号对应的标识,然后通过该标识清除发生故障的账号登录节点的账号分布式锁。此时,账号登录节点执行重启操作。在重启完成后,账号登录节点再次清除账号分布式锁,以防止账号中心节点和账号登录节点同时发生故障而无法清除账号分布式锁。在账号登录节点完成清除操作之后,客户端即可通过该账号登录节点进行登录。
需要说明的是,由于顶号登录逻辑不依赖任何游戏集群服务单点,因此在账号登录节点发生故障的期间,不会影响故障节点以外的其他节点的登录顶号服务。而在故障节点上登录的客户端可在账号分布式锁的故障清除后恢复,而该过程的耗时较短,为毫秒级别的耗时。由上述内容可知,通过上述所提供的至少一个清锁方案可保证账号分布式锁在账号登录节点故障时不影响用户的正常顶号登录,从而提高了整个游戏系统的容灾能力。
在另一种可选的实施例中,在账号分布式锁发生故障的情况下,基于数据库内存储的备份数据对账号分布式锁进行修复。需要说明的是,由于账号分布式锁是基于高性能可容灾数据库实现的,而此类数据库提供了完整的故障恢复方案,因此,通过数据库内的备份数据的复制以及故障恢复特效可保证分布式锁的容灾。
具体的,以MongoDB数据路为例进行说明。MongoDB数据库的高可用架构模式为replication,其提供了数据冗余以提高数据库的可用性,即将数据在多个服务器上备份,当其中的部分服务器失效时,服务器集群仍可以提供服务。其中,基于MongoDB数据库所设计的账号分布式锁伪代码如下:
在一种可选的实施例中,在账号中心节点发生故障的情况下,账号中心节点的网络拓扑结构将丢失,各个账号登录节点通过心跳协议可确定账号中心节点发生故障,并发起重连逻辑,以使账号中心节点重启。在账号中心节点重启之后,账号登录节点与账号中心节点重新连接,并将当前登录信息上报至账号中心节点。
需要说明的是,由于账号中心节点只负责维护多个账号登录节点的网络拓扑结构,方便顶号登录集群管理及账号登录节点故障时的容灾行为,并不负责具体的顶号登录逻辑,因此,在账号中心节点发生故障时,并不会对客户端的顶号登录行为产生影响。
此外,还需要说明的是,当服务器集群中的服务器发生故障时,各类职能服务器(如网关服务器、逻辑服务器、数据服务器)通过系统守护进程监听进程状态,配置故障服务器退出并自动重启,从而任意单点发生故障均不会对整个集群服务造成影响,例如,逻辑服务器可通过连接多个网关服务器和多组数据服务器来避免单点网关服务器或数据服务器发生故障而导致逻辑服务器无法工作;而由于数据服务器为无状态服务器,因此,多机服务加故障重启可满足数据服务器的容灾要求;网关服务器发生故障可导致与客户端的连接断开,此时,客户端可通过发起新的顶号登录请求来解决故障问题;数据服务器与数据库集群通过心跳重连机制保证连接的健壮性。由此可见,本申请所提供的登录游戏系统的方法不仅可以解决单点登录的瓶颈,提高服务器的数据吞吐量,还可保证服务器集群中单点或多点发生故障时,顶号登录服务不会受到影响,进而保证了顶号登录服务器的稳定性与抗灾能力。
实施例2
根据本发明实施例,还提供了一种登录游戏系统的装置实施例,其中,图2是根据本发明实施例的登录游戏系统的装置结构示意图,如图2所示,该装置包括:获取模块201以及登录模块203。
其中,获取模块201,用于从账号分布式锁中获取当前账号登录节点上的当前登录信息,其中,账号分布式锁为存储登录信息的数据集合,当前账号登录节点为多个账号登录节点中的任意一个节点;登录模块203,用于采用当前登录信息登录游戏系统。其中,当前登录信息至少包括如下之一:登录账号、登录账号对应的标识。
需要说明的是,上述获取模块201以及登录模块203对应于实施例1中的步骤S102至步骤S104,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
在一种可选的实施例中,登录游戏系统的装置还包括:第一确定模块以及第一存储模块。其中,第一确定模块,用于根据当前登录信息确定存在账号分布式锁;第一存储模块,用于将当前登录信息存储至账号分布式锁。
在一种可选的实施例中,登录游戏系统的装置还包括:第二确定模块、第一构建模块以及第二存储模块。其中,第二确定模块,用于根据当前登录信息确定不存在账号分布式锁;第一构建模块,用于根据当前登录信息构建账号分布式锁;第二存储模块,用于将当前登录信息存储至账号分布式锁中。
在一种可选的实施例中,当前账号登录节点由网关服务器接收客户端发起的网络连接请求,从多个账号登录节点中确定当前账号登录节点,并由网关服务器将客户端与当前账号登录节点进行绑定。
在一种可选的实施例中,登录游戏系统的装置还包括:第二构建模块。其中,第二构建模块,用于根据当前登录信息向数据服务器发起锁请求,并从数据服务器中获取与锁请求对应的账号分布式锁。
在一种可选的实施例中,登录模块包括:第三确定模块、第一处理模块以及第二处理模块。其中,第三确定模块,用于确定当前账号登录节点是否存在当前登录信息;第一处理模块,用于如果当前账号登录节点存在当前登录信息,则执行根据当前登录信息确定存在账号分布式锁的步骤;第二处理模块,用于如果当前账号登录节点不存在当前登录信息,则终止当前账号登录节点的登录流程。
在一种可选的实施例中,在当前账号登录节点发生故障的情况下,登录游戏系统的装置还包括:第一清除模块以及第二清除模块。其中,第一清除模块,用于根据当前账号登录节点的标识清除当前账号登录节点对应的账号分布式锁;第二清除模块,用于重启当前账号登录节点,并在当前账号登录节点重启后,通过当前账号登录节点的端口信息清除当前账号登录节点对应的账号分布式锁。
在一种可选的实施例中,登录游戏系统的装置还包括:修复模块。其中,修复模块,用于在账号分布式锁发生故障的情况下,基于数据库内存储的备份数据对账号分布式锁进行修复。
实施例3
根据本发明实施例,还提供了一种登录游戏系统的系统实施例,该系统可执行实施例1中的登录游戏系统的方法,其中,该系统包括:服务器集群。其中,服务器集群至少包括多个网关服务器、多个逻辑服务器;当前网关服务器从多个逻辑服务器中确定与客户端进行绑定的当前逻辑服务器,其中,当前网关服务器为多个网关服务器中任意一个服务器;当前逻辑服务器从账号分布式锁中获取与客户端对应的当前登录信息,并采用当前登录信息登录游戏系统,其中,账号分布式锁为存储登录信息的数据集合。
需要说明的是,多个逻辑服务器包括一个账号中心服务器和多个账号登录服务器,其中,在账号中心服务器通过心跳协议确定当前账号登录服务器是否发生故障,当前账号登录服务器为多个账号登录服务器中的任意一个账号登录服务器。上述当前登录信息至少包括如下之一:登录账号、登录账号对应的标识。
具体的,图3示出了一种可选的登录游戏系统的系统结构示意图,由图3可知,该系统包括多个客户端(图3中仅示出了客户端1和客户端2)、多个网关服务器(图3中仅示出了网关服务器1和网关服务器2)、多个逻辑服务器以及多个数据服务器(图3中仅示出了数据服务器1和数据服务器2),其中,数据服务器为数据库集群提供交互逻辑,数据库集群可以包括但不限于MongoDB集群以及Redis集群。另外,多个逻辑服务器中部署一个逻辑服务器作为账号中心节点(如图3中的逻辑服务器2),而其他的逻辑服务器作为账号登录节点(如图3中的逻辑服务器1和逻辑服务器3)
在一种可选的实施例中,用户通过客户端选择任意网关服务器发起网络连接请求,网关服务器在接收到客户端发送的网络连接请求之后,建立网络连接,并选择一个逻辑服务器进行顶号登录。逻辑服务器接收客户端发送的顶号登录请求,并根据顶号登录请求向数据服务器申请账号分布式锁,并从账号分布式锁中获取当前逻辑服务器的当前登录信息。
由上可知,通过当前网关服务器从多个逻辑服务器中确定与客户端进行绑定的当前逻辑服务器,当前逻辑服务器从账号分布式锁中获取与客户端对应的当前登录信息,并采用当前登录信息登录游戏系统,其中,当前网关服务器为多个网关服务器中任意一个服务器,账号分布式锁为存储登录信息的数据集合,当前账号登录节点为多个账号登录节点中的任意一个节点。
容易注意到的是,由于每个服务器的数据吞吐量是有限的,因此,在执行顶号登录的过程中部署多个账号登录节点,可使多个客户端同时发出顶号登录请求,并对多个顶号登录请求同时进行处理,提高了服务器的数据吞吐量。另外,账号分布式锁可提供分布式互斥锁功能的数据集合,从而保证了顶号登录逻辑的唯一性和互斥性。
由上述内容可知,本申请所提供的登录游戏系统的方法可以达到提高服务器吞吐量的目的,从而实现了提高服务器集群容灾能力的技术效果,进而解决了现有的单点顶号登录方式导致服务器携带负载能力差的技术问题。
在一种可选的实施例中,在从账号分布式锁中获取当前逻辑服务器上的当前登录信息之前,当前逻辑服务器根据当前登录信息确定存在账号分布式锁,并将当前登录信息存储至账号分布式锁。
在一种可选的实施例中,在从账号分布式锁中获取当前逻辑服务器上的当前登录信息之前,当前逻辑服务器根据当前登录信息确定不存在账号分布式锁,然后根据当前登录信息构建账号分布式锁,最后,将当前登录信息存储至账号分布式锁中。
在一种可选的实施例中,当前逻辑服务器由网关服务器接收客户端发起的网络连接请求,从多个账号登录节点中确定当前逻辑服务器,并由网关服务器将客户端与当前逻辑服务器进行绑定。
在一种可选的实施例中,当前逻辑服务器根据当前登录信息向数据服务器发起锁请求,并从数据服务器中获取与锁请求对应的账号分布式锁。
在一种可选的实施例中,确定当前逻辑服务器是否存在当前登录信息;其中,如果当前逻辑服务器存在当前登录信息,则执行根据当前登录信息确定存在账号分布式锁的步骤;如果当前逻辑服务器不存在当前登录信息,则终止当前逻辑服务器的登录流程。
在一种可选的实施例中,在当前逻辑服务器发生故障的情况下,通过如下至少一种方式清除当前逻辑服务器对应的账号分布式锁:根据当前逻辑服务器的标识清除当前逻辑服务器对应的账号分布式锁,和/或,重启当前逻辑服务器,并在当前逻辑服务器重启后,通过当前逻辑服务器的端口信息清除当前逻辑服务器对应的账号分布式锁。
在一种可选的实施例中,当前逻辑服务器在账号分布式锁发生故障的情况下,基于数据库内存储的备份数据对账号分布式锁进行修复。
实施例4
根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,其中,程序执行实施例1中的登录游戏系统的方法。
实施例5
根据本发明实施例的另一方面,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行实施例1中的登录游戏系统的方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种登录游戏系统的方法,其特征在于,包括:
从账号分布式锁中获取当前账号登录节点上的当前登录信息,其中,所述账号分布式锁为存储登录信息的数据集合,所述当前账号登录节点为多个账号登录节点中的任意一个节点;
采用所述当前登录信息登录游戏系统。
2.根据权利要求1所述的方法,其特征在于,在从所述账号分布式锁中获取所述当前账号登录节点上的当前登录信息之前,所述方法还包括:
根据所述当前登录信息确定存在所述账号分布式锁;
将所述当前登录信息存储至所述账号分布式锁。
3.根据权利要求1所述的方法,其特征在于,在从所述账号分布式锁中获取所述当前账号登录节点上的当前登录信息之前,所述方法还包括:
根据所述当前登录信息确定不存在所述账号分布式锁;
根据所述当前登录信息构建所述账号分布式锁;
将所述当前登录信息存储至所述账号分布式锁中。
4.根据权利要求1所述的方法,其特征在于,所述当前账号登录节点由网关服务器接收客户端发起的网络连接请求,从所述多个账号登录节点中确定所述当前账号登录节点,并由所述网关服务器将所述客户端与所述当前账号登录节点进行绑定。
5.根据权利要求1所述的方法,其特征在于,所述当前登录信息至少包括如下之一:登录账号、登录账号对应的标识。
6.根据权利要求2所述的方法,其特征在于,在根据所述当前登录信息确定存在账号分布式锁之后,所述方法还包括:
根据所述当前登录信息向数据服务器发起锁请求,并从所述数据服务器中获取与所述锁请求对应的账号分布式锁。
7.根据权利要求1所述的方法,其特征在于,采用所述当前登录信息登录游戏系统包括:
确定当前账号登录节点是否存在所述当前登录信息;
如果所述当前账号登录节点存在所述当前登录信息,则执行根据所述当前登录信息确定存在所述账号分布式锁的步骤;
如果所述当前账号登录节点不存在所述当前登录信息,则终止所述当前账号登录节点的登录流程。
8.根据权利要求1所述的方法,其特征在于,在采用所述当前登录信息登录游戏系统之后,所述方法还包括:
在所述当前账号登录节点发生故障的情况下,通过如下至少一种方式清除所述当前账号登录节点对应的账号分布式锁:
根据所述当前账号登录节点的标识清除所述当前账号登录节点对应的账号分布式锁,和/或,
重启所述当前账号登录节点,并在所述当前账号登录节点重启后,通过所述当前账号登录节点的端口信息清除所述当前账号登录节点对应的账号分布式锁。
9.根据权利要求1所述的方法,其特征在于,在根据所述账号分布式锁中的当前登录信息登录游戏系统之后,所述方法还包括:
在所述账号分布式锁发生故障的情况下,基于数据库内存储的备份数据对所述账号分布式锁进行修复。
10.一种登录游戏系统的装置,其特征在于,包括:
获取模块,用于从账号分布式锁中获取当前账号登录节点上的当前登录信息,其中,所述账号分布式锁为存储登录信息的数据集合,所述当前账号登录节点为多个账号登录节点中的任意一个节点;
登录模块,用于采用所述当前登录信息登录游戏系统。
11.一种登录游戏系统的系统,其特征在于,包括:
服务器集群,其中,所述服务器集群至少包括多个网关服务器、多个逻辑服务器;
当前网关服务器从所述多个逻辑服务器中确定与客户端进行绑定的当前逻辑服务器,其中,所述当前网关服务器为所述多个网关服务器中任意一个服务器;
所述当前逻辑服务器从账号分布式锁中获取与所述客户端对应的当前登录信息,并采用所述当前登录信息登录游戏系统,其中,所述账号分布式锁为存储登录信息的数据集合。
12.根据权利要求11所述的系统,其特征在于,所述多个逻辑服务器包括一个账号中心服务器和多个账号登录服务器,其中,在所述账号中心服务器通过心跳协议确定当前账号登录服务器是否发生故障,所述当前账号登录服务器为多个账号登录服务器中的任意一个账号登录服务器。
13.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序执行权利要求1至9中任意一项所述的登录游戏系统的方法。
14.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至9中任意一项所述的登录游戏系统的方法。
CN201810325412.0A 2018-04-12 2018-04-12 登录游戏系统的方法、装置和系统 Active CN108540324B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810325412.0A CN108540324B (zh) 2018-04-12 2018-04-12 登录游戏系统的方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810325412.0A CN108540324B (zh) 2018-04-12 2018-04-12 登录游戏系统的方法、装置和系统

Publications (2)

Publication Number Publication Date
CN108540324A true CN108540324A (zh) 2018-09-14
CN108540324B CN108540324B (zh) 2021-05-25

Family

ID=63479886

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810325412.0A Active CN108540324B (zh) 2018-04-12 2018-04-12 登录游戏系统的方法、装置和系统

Country Status (1)

Country Link
CN (1) CN108540324B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111221887A (zh) * 2018-11-27 2020-06-02 中云开源数据技术(上海)有限公司 一种对数据湖服务器中的数据进行管理和访问的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104486328A (zh) * 2014-12-10 2015-04-01 小米科技有限责任公司 访问控制方法和装置
CN106936931A (zh) * 2017-04-26 2017-07-07 华为技术有限公司 分布式锁的实现方法、相关设备及系统
US9747323B1 (en) * 2014-12-30 2017-08-29 EMC IP Holding Company LLC Method for reconstruction of a distributed lock state after a node addition or removal using a consistent hash
CN107358425A (zh) * 2017-06-29 2017-11-17 湖南搜云网络科技股份有限公司 交易费用的计算及支付方法和装置、交易平台及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104486328A (zh) * 2014-12-10 2015-04-01 小米科技有限责任公司 访问控制方法和装置
US9747323B1 (en) * 2014-12-30 2017-08-29 EMC IP Holding Company LLC Method for reconstruction of a distributed lock state after a node addition or removal using a consistent hash
CN106936931A (zh) * 2017-04-26 2017-07-07 华为技术有限公司 分布式锁的实现方法、相关设备及系统
CN107358425A (zh) * 2017-06-29 2017-11-17 湖南搜云网络科技股份有限公司 交易费用的计算及支付方法和装置、交易平台及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
58沈剑: ""一分钟实现分布式锁"", 《HTTPS://MP.WEIXIN.QQ.COM/S/D3CFP0DRW0JXKGK5ZLF7HG》 *
佚名: ""redis实现单点登录系统"", 《HTTPS://BLOG.CSDN.NET/QQ_37334135/ARTICLE/DETAILS/77727456》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111221887A (zh) * 2018-11-27 2020-06-02 中云开源数据技术(上海)有限公司 一种对数据湖服务器中的数据进行管理和访问的方法

Also Published As

Publication number Publication date
CN108540324B (zh) 2021-05-25

Similar Documents

Publication Publication Date Title
CN106911728B (zh) 分布式系统中主节点的选取方法和装置
JP6416745B2 (ja) 複製されたデータインスタンスのためのフェイルオーバーおよび復旧
CN103581276B (zh) 集群管理装置、系统、业务客户端及相应方法
CN106874136A (zh) 一种存储系统的故障处理方法及装置
CN108429629A (zh) 设备故障恢复方法和装置
CN104469699B (zh) 集群仲裁方法和多集群配合系统
EP3000048A2 (en) System and method for creating highly scalable high availability cluster in a massively parallel processing cluster of machines in a network
CN105429799B (zh) 服务器备份方法及装置
CN106484565A (zh) 多数据中心间的数据同步方法及相关设备
CN106796537A (zh) 计算集群中的分布式组件
CN109391691A (zh) 一种单节点故障下nas服务的恢复方法及相关装置
CN106302569A (zh) 处理虚拟机集群的方法和计算机系统
CN109254876A (zh) 云计算系统中数据库的管理方法和装置
CN112612769A (zh) 文件处理方法、装置及存储介质
CN108540324A (zh) 登录游戏系统的方法、装置和系统
CN112910743B (zh) 一种区块链性能检测系统
CN103731291A (zh) 一种网络服务器池系统数据传输结构及其程序开发方法
CN110290163A (zh) 一种数据处理方法及装置
CN105490847A (zh) 一种私有云存储系统中节点故障实时检测及处理方法
CN107277043A (zh) 基于集群服务的网络准入控制系统
CN116112569B (zh) 微服务调度方法及管理系统
CN104657240B (zh) 多内核操作系统的失效控制方法及装置
CN111880932A (zh) 一种基于多网口的数据存储方法及装置
CN107181608A (zh) 一种恢复服务及性能提升的方法及运维管理系统
CN106933700A (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