基于实时计算的游戏防沉迷方法和系统

文档序号:892732 发布日期:2021-02-26 浏览:26次 >En<

阅读说明:本技术 基于实时计算的游戏防沉迷方法和系统 (Game anti-addiction method and system based on real-time calculation ) 是由 鲁昂 曲涛 谭晓栋 于 2020-04-16 设计创作,主要内容包括:一种基于实时计算的游戏防沉迷方法,包括:通过实时计算集群监听消息队列集群以获取多个消息队列消息;通过实时计算集群根据多个消息队列消息生成聚合计算消息,将聚合计算消息上报消息队列集群;通过数据落地服务集群监听消息队列集群以获取聚合计算消息;通过数据落地服务集群将聚合计算消息实时暂存到缓存集群并异步存储到分布式数据库集群;通过防沉迷服务集群读取缓存集群中新增的缓存数据;通过防沉迷服务集群根据新增的缓存数据和预设防沉迷规则,实时计算得到防沉迷状态数据并将防沉迷状态数据经由多个业务系统发送给相应的游戏客户端,以便该相应的游戏客户端执行相应的防沉迷操作。本方法通用性好、实时性好且具备高性能。(A real-time computing based game anti-addiction method, comprising: monitoring a message queue cluster through a real-time computing cluster to obtain a plurality of message queue messages; generating an aggregation calculation message according to the plurality of message queue messages through the real-time calculation cluster, and reporting the aggregation calculation message to the message queue cluster; monitoring a message queue cluster through a data-location service cluster to acquire an aggregate computing message; temporarily storing the aggregation calculation message to a cache cluster in real time through a data ground service cluster and asynchronously storing the aggregation calculation message to a distributed database cluster; reading newly added cache data in the cache cluster through the anti-addiction service cluster; and calculating in real time to obtain anti-addiction state data through the anti-addiction service cluster according to the newly-added cache data and preset anti-addiction rules, and sending the anti-addiction state data to the corresponding game client through the plurality of service systems so that the corresponding game client executes corresponding anti-addiction operation. The method has good universality, good real-time performance and high performance.)

基于实时计算的游戏防沉迷方法和系统

技术领域

本申请实施例涉及计算机技术领域,尤其涉及一种基于实时计算的游戏防沉迷方法、系统以及计算机设备。

背景技术

随着计算机技术的发展,人们可以在计算机设备上进行各类网络游戏。然而,越来越丰富的网络游戏,使得很多游戏玩家沉迷其中,影响着正常的学习与工作。尤其对于未成年游戏玩家,沉迷于网络游戏会严重影响这些游戏玩家身心健康发展。现有技术中出现了游戏防沉迷方法,具体的,对网络游戏用户进行时间及充值金额的限制,现有技术中,网络游戏服务器在用户通过网络游戏账户登录后,对用户该网络游戏账户的游戏时间从0开始计时,并根据计时时间对该网络游戏账户进行游戏时间监控。例如:以一天为一个固定监控周期,每经过一个固定监控周期,防沉迷计时器归零后重新计时。通过以上措施,可以起到防止游戏玩家过度沉迷于游戏的目的。上述对用户进行网络游戏时间限制时,具体可以由游戏防沉迷系统执行。

然而,现有的游戏防沉迷系统具有以下缺陷:通用性差、实时性并且计算性能较差。

发明内容

本申请实施例的目的是提供一种基于实时计算的游戏防沉迷方法、系统、计算机设备及计算机可读存储介质,用于解决现有的游戏防沉迷系统通用性差、实时性并且计算性能较差的问题。

本申请实施例的一个方面提供了一种基于实时计算的游戏防沉迷方法,所述方法包括:通过实时计算集群监听消息队列集群以获取多个消息队列消息,所述消息队列集群用于实时传输多个业务系统基于用户数据上报的消息队列消息;通过所述实时计算集群根据所述多个消息队列消息生成聚合计算消息,并将所述聚合计算消息上报给所述消息队列集群;通过数据落地服务集群监听所述消息队列集群,以获取所述聚合计算消息;通过所述数据落地服务集群将所述聚合计算消息实时暂存到缓存集群,并将所述聚合计算消息异步存储到所述分布式数据库集群中;通过防沉迷服务集群读取所述缓存集群中新增的缓存数据;通过所述防沉迷服务集群根据所述新增的缓存数据和预设防沉迷规则,实时计算得到防沉迷状态数据;通过防沉迷服务集群将所述防沉迷状态数据发送给所述多个业务系统,以使该一个或多个业务系统向相应的游戏客户端返回所述防沉迷数据,以便该相应的客户端执行相应的防沉迷操作。

可选的,通过实时计算集群根据所述多个消息队列消息生成聚合计算消息,还包括:通过所述实时计算集群根据流聚合将具有共同元组的多个消息队列消息聚合形成一个相应的聚合计算消息;其中,所述共同元组包括一个或多个字段。

可选的,所述聚合计算消息被所述实时计算集群标记缓存标识;通过数据落地服务集群将所述聚合计算消息实时暂存到所述缓存集群,包括:所述数据落地服务集群根据所述聚合计算消息中的缓存标识,将所述聚合计算消息实时提供给所述缓存集群,以使所述缓存集群根据所述聚合计算消息实时更新缓存数据。

可选的,将所述聚合计算消息异步存储到分布式数据库集群中,包括:在分布式限流器的限流控制下,通过所述数据落地服务集群将所述聚合计算消息异步写入到所述分布式数据库集群中。

可选的,所述多个业务系统包括支付系统、登录系统和/或心跳服务系统,相应的,所述用户数据包括支付数据、登录数据和/或使用时长数据。

可选的,所述防沉迷状态数据包括:用户防沉迷状态标识、防沉迷触发数据和触发防沉迷的规则标准数据;其中:所述用户防沉迷状态标识包括:用户是否可支付、用户是否可登录的标识和/或用户是否可继续玩;所述防沉迷触发数据包括:用户已支付金额、用户已登录时间段和/或用户已游戏时长;所述触发防沉迷的规则标准数据包括:用户可支付金额、用户可登录时间段和/或用户的可玩时长。

可选的,所述实时计算集群、所述数据落地服务集群、所述缓存集群、所述分布式数据库集群和所述防沉迷服务集群分别位于不同的硬件系统中。

本申请实施例的一个方面又提供了一种基于实时计算的游戏防沉迷系统,所述游戏防沉迷系统包括:所述系统包括实时计算集群、数据落地服务集群、缓存集群、分布式数据库集群和防沉迷服务集群,其中:所述实时计算集群监听消息队列集群以获取多个消息队列消息,所述消息队列集群用于实时传输多个业务系统基于用户数据上报的消息队列消息;所述实时计算集群通过所述多个消息队列消息生成聚合计算消息,并将所述聚合计算消息上报给所述消息队列集群;所述数据落地服务集群监听所述消息队列集群,以获取所述聚合计算消息;所述数据落地服务集群将所述聚合计算消息实时暂存到缓存集群,并将所述聚合计算消息异步存储到所述分布式数据库集群中;所述缓存集群根据所述集合计算消息新增缓存数据;所述防沉迷服务集群读取所述缓存集群中新增的缓存数据;所述防沉迷服务集群根据所述新增的缓存数据和预设防沉迷规则,实时计算得到防沉迷状态数据;所述防沉迷服务集群将所述防沉迷状态数据发送给所述多个业务系统,以使该一个或多个业务系统向相应的游戏客户端返回所述防沉迷数据,以便该相应的客户端执行相应的防沉迷操作。

本申请实施例的一个方面又提供了一种基于实时计算的游戏防沉迷方法,所述方法包括:读取缓存集群中新增的缓存数据;其中,所述新增的缓存数据包括聚合计算消息,所述聚合计算消息基于用户数据聚合得到并被实时暂存到缓存集群中;根据所述新增的缓存数据和预设防沉迷规则,实时计算得到防沉迷状态数据;及将所述防沉迷状态数据发送给多个业务系统的一个或多个业务系统,以使该一个或多个业务系统向相应的游戏客户端返回所述防沉迷数据,以便该相应的客户端执行相应的防沉迷操作。

本申请实施例的一个方面又提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述基于实时计算的游戏防沉迷方法的步骤。

本申请实施例的一个方面又提供了一种计算机可读存储介质,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述基于实时计算的游戏防沉迷方法的步骤。

本申请实施例提供的基于实时计算的游戏防沉迷方法、系统、计算机设备及计算机可读存储介质,是通过实时计算集群、数据落地服务集群、缓存集群、分布式数据库集群和防沉迷服务集群之间的架构配合实现的,上述架构配合可以适用于各种游戏业务场景,具有很高的通用性。通过上面提供的分布式、集群架构配合方式,配合使用实时缓存,可以提供实时地高性能计算,实时性非常好。

附图说明

图1示意性示出了根据本申请实施例的基于实时计算的游戏防沉迷方法的运行环境图;

图2示意性示出了根据本申请实施例一的基于实时计算的游戏防沉迷方法的流程图;

图3示意性示出了根据本申请实施例一的基于实时计算的游戏防沉迷方法的另一流程图;

图4示意性示出了实施例二中的基于实时计算的游戏防沉迷系统在支付场景下的示例;

图5示意性示出了根据本申请实施例三的基于实时计算的游戏防沉迷方法的流程图;及

图6示意性示出了根据本申请实施例中的计算机设备的硬件架构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。

图1示意性示出了根据本申请实施例的游戏防沉迷方法的环境运行图。

如图1所示,所述环境示意图中包括以下:

游戏客户端2,运行于海量的移动终端中,提供给游戏不同的功能,可以包括SDK客户端和数据SDK客户端。SDK:为iOS和Android等系统定制的工具包,接入方应用程序通过SDK使用系统功能。所述SDK客户端,泛指运行在移动终端(如手机)中的游戏客户端,即运行在移动终端中的游戏使用的程序。在本实施例中,所述SDK客户端用于提供游戏相关支付、登录等功能,例如提供与服务端的支付系统、登录系统对应的游戏支付功能、登录功能。所述数据SDK客户端,用于在用户游戏过程中与后端的业务系统对接,上报业务系统所需各种数据。在本实施例中,所述数据SDK客户端用于在用户登录游戏后,与后端的业务系统(例如,心跳服务系统)对接,上报用户在线游玩时长等数据。

业务系统4,运行于后端服务器中,可以包括支付系统、登录系统,心跳服务系统等各种后端服务系统。所述支付系统、所述登录系统和所述心跳服务系统,用于为所述SDK客户端或所述数据SDK客户端提供后端服务,所述后端服务可以分别包括用户支付服务、登录服务、数据上报服务(例如,上报用户在线时长数据)。

消息队列(message queue,MQ)集群6,可以是由多个计算机设备构成的集群,用于消息的发送与接收。

实时计算集群8,分布式的实时计算系统,运行于是由多个计算机设备构成的集群中,用于在游戏防沉迷系统中提供实时计算服务,以基于从消息队列集群中监听的数据实时计算得到各个用户的聚合计算消息,例如,各个未成年人在某个游戏上的已玩游戏时间等。实时计算集群8可以是Storm集群,其为分布式实时大数据处理系统。

数据落地服务集群10,可以运行于由多个计算机设备构成的集群中,用于在游戏防沉迷系统中提供监测处理和落地存储服务,例如,为实时计算集群8中产生的各个用户的用户数据(例如,聚合计算消息)提供落地存储服务。

缓存集群12,可以运行于由多个计算机设备构成的集群中,用于在游戏防沉迷系统中提供实时暂存服务,例如,实时暂存实时计算集群8产生的各个用户的用户数据(例如,聚合计算消息),以便防沉迷服务集群16能够实时拿取数据。

分布式数据库集群14,可以运行于由多个计算机设备构成的集群中,用于在游戏防沉迷系统中提供数据永久化服务,例如,对实时计算集群8产生的各个用户的用户数据(例如,聚合计算消息)进行永久化存储。

防沉迷服务集群16,可以运行于由多个计算机设备构成的集群中,用于在游戏防沉迷系统中提供防沉迷数据计算服务,即根据从缓存集群12中获取的各个用户的用户数据(例如,聚合计算消息),对各个用户实进行防沉迷状态计算,以得到各个用户的防沉迷状态数据。

实施例一

图2示意性示出了根据本申请实施例一的基于实时计算的游戏防沉迷方法的流程图。该游戏防沉迷方法可以包括步骤S200~S212,其中:

步骤S200,通过实时计算集群8监听消息队列集群以获取多个消息队列消息。

消息队列集群6用于接收多个业务系统4基于用户数据上报的消息队列消息。

游戏客户端2可以调用相关的业务系统4(如支付系统、登录系统)以完成相关业务功能。游戏客户端2也可以上报用户的游戏时长提供给相关的业务系统4(如心跳服务系统)。

多个业务系统4获取登录、支付、游戏时长等用户数据之后,会将该用户数据形成一个或多个消息队列消息并实时上报给消息队列集群,以通过该消息队列集群将所述多个消息队列消息发送出去。

步骤S202,通过实时计算集群8根据所述多个消息队列消息生成聚合计算消息,并将所述聚合计算消息上报给消息队列集群6。

实时计算集群8根据用户、业务类型等进行实时聚合计算生成聚合计算消息。

所述聚合计算消息,包括用于防沉迷服务集群16进行防沉迷状态计算所需的数据,例如:某个用户的用户年龄段、某个用户的某个游戏在过去N天在线游玩时长、当天在线游玩时长,当天支付金额等。

在示例性的实施例中,如图3所示,所述步骤202包括步骤S202':通过所述实时计算集群根据流聚合(stream join)将具有共同元组的多个消息队列消息聚合形成一个相应的聚合计算消息,从而可以得到大量的聚合计算消息。

所述流聚合,是指将具有共同元组(tuple)字段的数据流(两个或者多个)聚合形成一个新的数据流的过程。

所述共同元组(tuple)包括一个或多个字段,如用户字段或用户-游戏等字段组合。

作为示例,一个聚合计算消息可以包括如下数据a)~f):

a)某个用户当天平台所有游戏在线时长;

b)某个用户当天某款游戏在线时长;

c)某个用户过去7天平台所有游戏累计游玩时长;

d)某个用户当天某款游戏支付金额;

e)某个用户过去7天某款游戏支付金额;和/或

f)某个用户当月累计支付金额。

步骤S204,通过数据落地服务集群10监听消息队列集群6,以获取所述聚合计算消息。

步骤S206,通过数据落地服务集群10将所述聚合计算消息实时暂存到缓存集群12,并通过数据落地服务集群10将所述聚合计算消息异步存储到分布式数据库集群14中以持久化所述聚合计算消息。

步骤S206在于实时数据和永久化数据的分离和异步存储,通过缓存集群12和分布式数据库集群14的分离架构,可以缓解写数据的压力和提高计算实时性。其中,分布式数据库集群14在于数据的永久化,如聚合计算消息的永久化存储;缓存集群12在于数据的实时暂存,以供防沉迷服务集群16实时拿取数据。

在示例性的实施例中,如图3所示,为便于缓存集群12的实时更新,所述聚合计算消息被实时计算集群8标记缓存标识。通过数据落地服务集群10将所述聚合计算消息实时暂存到缓存集群12,包括以下步骤:步骤S206':通过数据落地服务集群10根据所述聚合计算消息中的缓存标识,将所述聚合计算消息实时提供给缓存集群12,以使缓存集群12根据所述聚合计算消息实时更新缓存数据。

在示例性的实施例中,如图3所示,为进一步缓解大请求量下对分布式数据库集群的写数据压力,通过数据落地服务集群10将所述聚合计算消息异步存储到分布式数据库集群14中,包括以下步骤:在分布式限流器的限流控制下,通过数据落地服务集群10将所述聚合计算消息异步写入到分布式数据库集群14中。所述分布式限流器为限流组件,用于对待写入到分布式数据库集群14的海量聚合计算消息,进行限速或者一个时间窗口内的得到聚合计算消息进行限速,从而缓解数据持久化操作中的写数据压力。

步骤S208,通过防沉迷服务集群16读取缓存集群12中新增的缓存数据。

所述新增的缓存数据,即通过实时计算集群8聚合计算得到的所述聚合计算消息。

步骤S210,通过防沉迷服务集群16根据所述新增的缓存数据和预设防沉迷规则,实时计算得到防沉迷状态数据。

防沉迷服务集群16可以根据预设的未成年人不同年龄段的防沉迷规则,进行所述预设防沉迷规则-所述新增的缓存数据之间的匹配计算,得出未成年人防沉迷状态。

在示例性的实施例中,所述预设防沉迷规则,以未成年人为例:

a)未成年人每日游玩时长限制;

b)未成年人每日支付金额限制;

c)未成年人每月支付金额限制;

d)未成年人单次支付金额限制;

e)未成年人每日可游玩时间段;

如:0-18周岁(不包含18周岁),限定非节假日每日游玩1小时;节假日每日游玩2小时等规则。

当然,不同防沉迷需求可设定不同的防沉迷规则。

在示例性的实施例中,所述新增的缓存数据,即所述聚合计算消息:

a)某个未成年人当天平台所有游戏在线时长;

b)某个未成年人当天某款游戏在线时长;

c)某个未成年人过去7天平台所有游戏累计游玩时长;

d)某个未成年人当天某款游戏支付金额;

e)某个未成年人过去7天某款游戏支付金额;和/或

f)某个未成年人当月累计支付金额。

累计在线时长,可以指:用户上线后,一定时间内其累计在线的游玩时间;

累计在线支付金额,可以至:用户上线后,一定时间内其累计充值的人民币金额。

在示例性的实施例中,未成年人的防沉迷状态,可以如下:

1.未成年人可支付;

2.未成年人不可支付;

3.未成年人可游玩;

4.未成年人不可游玩。

在示例性的实施例中,所述防沉迷状态数据,可以包括:用户防沉迷状态标识、防沉迷触发数据和触发防沉迷的规则标准数据等。所述用户防沉迷状态标识包括:用户是否可支付、用户是否可登录的标识和/或用户是否可继续玩。所述防沉迷触发数据包括:用户已支付金额、用户已登录时间段和/或用户已游戏时长。所述触发防沉迷的规则标准数据包括:用户可支付金额、用户可登录时间段和/或用户的可玩时长。

步骤S212,通过防沉迷服务集群16将所述防沉迷状态数据发送给所述多个业务系统4,以使所述多个业务系统4中的一个或多个业务系统向相应的游戏客户端2返回所述防沉迷数据,以便该相应的游戏客户端2执行相应的防沉迷操作。

在示例性的实施例中,所述多个业务系统4包括支付系统、登录系统和/或心跳服务系统,相应的,所述用户数据包括支付数据、登录数据和/或使用时长数据。

例如,当用户A的防沉迷状态数据包括“未成年人不可支付”,则将用户A的该防沉迷状态数据发送至支付系统中,所述支付系统将会对用户A执行相应的防沉迷操作,该相应的防沉迷操作如下:拒绝用户A通过其游戏客户端发起的支付请求。

当然,防沉迷操作可以由多个方式,例如:

方式一:弹窗提示并禁止用户登陆游戏。

方式二:弹窗提示并将用户踢下线,通过杀死运行在移动终端上的游戏进程,强制将用户踢下线,表现为停止游戏运行并关闭游戏。

方式三:弹窗提示并禁止用户支付。

通过上述防沉迷操作的各种方式,可以有效实现防沉迷效果。

需要说明的是,实时计算集群8、数据落地服务集群10、缓存集群12、分布式数据库集群14和防沉迷服务集群16分别位于不同的硬件系统中。

本申请实施例一提供的基于实时计算的游戏防沉迷方法,是通过实时计算集群8、数据落地服务集群10、缓存集群12、分布式数据库集群14和防沉迷服务集群16之间的架构配合实现的,上述架构配合可以适用于各种游戏业务场景,具有很高的通用性。通过上面提供的分布式、集群架构配合方式,配合使用实时缓存,可以提供实时地高性能计算,实时性非常好。

另外,本申请实施例一提供的基于实时计算的游戏防沉迷方法,其所使用的架构具有以下优化:①通过整体业务拆分,形成整体业务系统的分布式部署,单业务集群形式业务架构。②以自治为服务化思想,形成存储层与业务的架构封装,形成分布式单业务系统部署独立缓存集群及分布式数据库集群。③分布式数据库集群架构。

另外,本申请实施例一提供的基于实时计算的游戏防沉迷方法,通过独立设置数据落地服务集群10、缓存集群12和分布式数据库集群14,由独立的数据落地服务集群10进行消息队列消息监听,并根据监听到的消息队列消息实时更新缓存集群12中的缓存数据,同时异步更新和持久化分布式数据库集群14中的持久化数据,有效地缓解了写数据的压力和提高了计算实时性。

实施例二

以下提供一种基于实时计算的游戏防沉迷系统,所述游戏防沉迷系统包括分别位于不同的硬件系统中的:实时计算集群8、数据落地服务集群10、缓存集群12、分布式数据库集群14和防沉迷服务集群16。

结合图1,以下对游戏防沉迷系统的操作流程进行阐述:

实时计算集群8监听消息队列集群以获取多个消息队列消息,所述消息队列集群用于实时传输多个业务系统基于用户数据上报的消息队列消息。在示例性的实施例中,所述多个业务系统包括支付系统、登录系统和/或心跳服务系统,相应的,所述用户数据包括支付数据、登录数据和/或使用时长数据。

实时计算集群8通过所述多个消息队列消息生成聚合计算消息,并将所述聚合计算消息上报给所述消息队列集群。在示例性的实施例中,实时计算集群8根据流聚合将具有共同元组的多个消息队列消息聚合形成一个相应的聚合计算消息;其中,所述共同元组包括一个或多个字段。

数据落地服务集群10监听所述消息队列集群,以获取所述聚合计算消息。

数据落地服务集10将所述聚合计算消息实时暂存到缓存集群12,并将所述聚合计算消息异步存储到所述分布式数据库集群14中。在示例性的实施例中,所述聚合计算消息被实时计算集群8标记缓存标识。数据落地服务集群10根据所述聚合计算消息中的缓存标识,将所述聚合计算消息实时提供给所述缓存集群,以使缓存集群12根据所述聚合计算消息实时更新缓存数据。数据落地服务集群10在分布式限流器的限流控制下将所述聚合计算消息异步写入到分布式数据库集群14中。

防沉迷服务集群16读取所述缓存集群中新增的缓存数据。

防沉迷服务集群16根据所述新增的缓存数据和预设防沉迷规则,实时计算得到防沉迷状态数据。在示例性的实施例中,所述防沉迷状态数据包括:用户防沉迷状态标识、防沉迷触发数据和触发防沉迷的规则标准数据;其中:所述用户防沉迷状态标识包括:用户是否可支付、用户是否可登录的标识和/或用户是否可继续玩;所述防沉迷触发数据包括:用户已支付金额、用户已登录时间段和/或用户已游戏时长;所述触发防沉迷的规则标准数据包括:用户可支付金额、用户可登录时间段和/或用户的可玩时长。

防沉迷服务集群16将所述防沉迷状态数据发送给所述多个业务系统,以使该一个或多个业务系统向相应的游戏客户端2返回所述防沉迷数据,以便该相应的游戏客户端2执行相应的防沉迷操作。

本申请实施例二提供的基于实时计算的游戏防沉迷系统,其系统架构包括实时计算集群8、数据落地服务集群10、缓存集群12、分布式数据库集群14和防沉迷服务集群16,上述架构配合可以适用于各种游戏业务场景,具有很高的通用性。通过上面提供的分布式、集群架构配合方式,配合使用实时缓存,可以提供实时地高性能计算,实时性非常好。

该系统架构具有以下优化:①通过整体业务拆分,形成整体业务系统的分布式部署,单业务集群形式业务架构。②以自治为服务化思想,形成存储层与业务的架构封装,形成分布式单业务系统部署独立缓存集群及分布式数据库集群。③分布式数据库集群架构。

该系统架构,通过独立设置数据落地服务集群10、缓存集群12和分布式数据库集群14,由独立的数据落地服务集群10进行消息队列消息监听,并根据监听到的消息队列消息实时更新缓存集群12中的缓存数据,同时异步更新和持久化分布式数据库集群14中的持久化数据,有效地缓解了写数据的压力和提高了计算实时性。

如图4,为了增进理解,以下提供一个支付场景下的示例:

1.用户点击支付界面中的物品发起支付;

2.通过SDK客户端调用支付系统发起支付请求;

3.支付系统请求游戏防沉迷系统的用户可支付接口;

4.游戏防沉迷系统获取该用户的用户当日已支付数据;

5.游戏防沉迷系统根据可支付规则和该用户的用户当日支付数据,确定所述是否可支付;

可支付规则,如:0-8周岁未成年用户当日可支付50元,9-16周岁用户当日可支付100元,17-18周岁用户当日可支付50元;

如果该用户的用户当日支付数据为120元,且用户为15周岁。根据120(用户请求支付的金额)>100(规则限制金额),则可以计算得到该用户的防沉迷状态为:不可支付;

6.游戏防沉迷系统将防沉迷状态数据(如:“该用户不可支付”类似标识)返回支付系统;

7.支付系统将“该用户不可支付”类似标识返回SDK客户端,SDK客户端获取“该用户不可支付”类似标识;

8.SDK客户端通过弹窗提示用户不可支付并禁止支付。

实施例三

图5示意性示出了根据本申请实施例一的基于实时计算的游戏防沉迷方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备为执行主体进行示例性描述。

如图5所示,该游戏防沉迷方法可以包括步骤S500~S506,其中:

步骤S500,读取缓存集群中新增的缓存数据;其中,所述新增的缓存数据包括聚合计算消息,所述聚合计算消息基于用户数据聚合得到并被实时暂存到所述缓存集群中。

步骤S502,根据所述新增的缓存数据和预设防沉迷规则,实时计算得到防沉迷状态数据。

步骤S504,将所述防沉迷状态数据发送给多个业务系统的一个或多个业务系统,以使所述多个业务系统中的一个或多个业务系统向相应的游戏客户端返回所述防沉迷数据,以便该相应的客户端执行相应的防沉迷操作。

在示例性的实施例中,所述聚合计算消息是通过流聚合将具有共同元组的多个消息队列消息聚合形成的,包括用于进行防沉迷状态计算所需的数据,例如:某个用户的用户年龄段、某个用户的某个游戏在过去N天在线游玩时长、当天在线游玩时长,当天支付金额等。所述聚合计算消息还会被异步持久化到分布式数据库集群中。

在示例性的实施例中,所述多个业务系统可以包括支付系统、登录系统和/或心跳服务系统,相应的,所述用户数据可以包括支付数据、登录数据和/或使用时长数据。

在示例性的实施例中,所述防沉迷状态数据包括:用户防沉迷状态标识、防沉迷触发数据和触发防沉迷的规则标准数据;其中:所述用户防沉迷状态标识包括:用户是否可支付、用户是否可登录的标识和/或用户是否可继续玩;所述防沉迷触发数据包括:用户已支付金额、用户已登录时间段和/或用户已游戏时长;所述触发防沉迷的规则标准数据包括:用户可支付金额、用户可登录时间段和/或用户的可玩时长。

本申请实施例三提供的基于实时计算的游戏防沉迷方法,具有很高的通用性。通过上面提供的分布式、集群架构配合方式,配合使用实时缓存,可以提供实时地高性能计算,实时性非常好。

实施例四

图6示意性示出了根据本申请实施例四的适于实现基于实时计算的游戏防沉迷方法的计算机设备2的硬件架构示意图。本实施例中,计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是工作站、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图6所示,计算机设备2至少包括但不限于:可通过系统总线相互通信链接存储器610、处理器620、网络接口630。其中:

存储器610至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器610可以是计算机设备2的内部存储模块,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器610也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(SmartMedia Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器610还可以既包括计算机设备2的内部存储模块也包括其外部存储设备。本实施例中,存储器610通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如基于实时计算的游戏防沉迷方法的程序代码等。此外,存储器610还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器620在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器620通常用于控制计算机设备2的总体操作,例如执行与计算机设备2进行数据交互或者通信相关的控制和处理等。本实施例中,处理器620用于运行存储器610中存储的程序代码或者处理数据。

网络接口630可包括无线网络接口或有线网络接口,该网络接口630通常用于在计算机设备2与其他计算机设备之间建立通信链接。例如,网络接口630用于通过网络将计算机设备2与外部终端相连,在计算机设备2与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(GlobalSystem of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code DivisionMultiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。

需要指出的是,图6仅示出了具有部件610-630的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。

在本实施例中,存储于存储器610中的游戏防沉迷方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器620)所执行,以完成本申请实施例。

实施例五

本申请还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的游戏防沉迷方法的步骤。

本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中游戏防沉迷方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。

显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。

以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:视频数据处理方法、装置及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类