一种红包实时派发的方法、装置、系统及存储介质制造方法及图纸

技术编号:16757010 阅读:44 留言:0更新日期:2017-12-09 02:52
本发明专利技术公开了一种红包实时派发的方法、装置、系统及存储介质。所述方法包括:通过将活动总预算拆分成多份分配到各redis缓存实例中,每个redis缓存实例具有一个预算节点,应用服务器接收抢红包请求,轮询本地内存中的预算节点路由表以获取可用状态的预算扣减节点,将抢红包请求关联到预算扣减节点,并生成红包;利用redis的单线程串行特性,当红包的金额满足预设条件时,将红包派发至与所述请求对应的用户设备;当红包的金额不满足预设条件时,对预算扣减节点中的碎片进行转移,并寻找下一个预算节点进行处理。进而能够提高系统的并发处理能力,同时又能保证实时性和预算扣减的准确性,进而提高了用户体验及保证资金安全。

A method, device, system and storage medium for real-time distribution of red packets

The invention discloses a method, a device, a system and a storage medium for real-time distribution of red packets. The method includes: the total budget is split into multiple copies assigned to each redis cache instances, each instance has a budget of redis cache node, the application server receives a request to grab a red envelope, polling the local memory budget node routing table to obtain the available state budget will deduct the node, grab a red envelope associated to the request the budget deduction node, and generate the red; using a single thread Serial Characteristic of redis, when the amount of red envelopes will meet the preset condition, and distributed to the requesting user equipment corresponding; when the amount of red does not satisfy the preset conditions, the budget deduction in the node fragments and find metastasis. A budget for processing nodes. It can improve the concurrent processing ability of the system, and guarantee the accuracy of real-time and budget deduction, thereby improving user experience and ensuring fund safety.

【技术实现步骤摘要】
一种红包实时派发的方法、装置、系统及存储介质
本专利技术涉及数据处理领域,尤其涉及一种红包实时派发的方法、装置、系统及存储介质。
技术介绍
互联网电商中比较火热的秒杀(or抢红包)活动,这类红包实时派发活动的特点是:1、红包发行预算有限,不能出现超发(资损)。2、每次发放红包的金额不确定(由客户端指定,通常指活动系统)。3、瞬间并发量特别大,如整点抢红包。4、某些场景实时性要求高,需实时返回处理结果(因活动有许多规则,异步处理不一定能成功发放)。但由于秒杀活动在线流量非常大,访问人数多访问量大,需要支持高并发量;现有技术的做法是前端进行限流,web服务层进行流量控制或者通过排队处理,保证同时操作预算的流量在可支持范围内;将预算缓存到redis缓存,利用redis的原子自增操作(事物特性)保证不超发。然而,在上述现有技术方案中,活动的总预算额是存在单个缓存节点中,整个系统吞吐量受单个节点实例瓶颈影响,控制并发数不能满足实时性要求高的场景,用户需要排队等红包的派发结果,因此用户体验不是很好;因此如何能够同时满足,保证预算安全(不出现超发)并且提高系统的并发处理能力,是一个亟需解决的问题。
技术实现思路
本专利技术的主要目的在于提供一种红包实时派发的方法,旨在提高系统的并发处理能力,同时保证系统的实时性和预算扣减的准确性。为实现上述目的,为实现上述目的,本专利技术提供一种红包实时派发的方法,所述红包实时派发方法包括以下步骤:创建活动时,将活动总预算拆分成n份节点预算额,将n份节点预算额分配到各redis缓存实例中的预算节点,并将各节点预算额保存到第一数据库;其中,各redis缓存实例分别具有一个预算节点,所述预算节点还包括已发放额;在接收用户设备发送的与所述活动对应的抢红包请求时,轮询本地内存中的预算节点路由表中的各预算节点状态,以选取一个可用状态的redis缓存实例中的预算节点作为预算扣减节点,将所述抢红包请求关联到所述预算扣减节点;其中,所述预算节点路由表记录各预算节点状态;根据所述预算扣减节点中的节点预算额生成红包,将所述红包的金额累加到所述已发放额;当累加后的已发放额满足预设条件时,将所述红包派发至与所述抢红包请求对应的用户设备,并将所述累加后的已发放额以及与所述红包对应的派发记录保存到第二数据库。优选地,所述当检查到累加后的已发放额满足预设条件时,所述当累加后的已发放额满足预设条件时,将所述红包派发至与所述抢红包请求对应的用户设备之前,所述方法还包括:检查到累加后的已发放额小于所述预算扣减节点的节点预算额时,,执行将所述红包派发至与所述抢红包请求对应的用户设备的步骤;或检查到所述预算扣减节点需进行预算碎片整理,或累加后的已发放额不小于所述预算扣减节点的节点预算额时时,将所述预算扣减节点状态设置为不可用;将所述预算扣减节点中的剩余金额转移到所述第一预设预算节点中,所述剩余金额由所述节点预算额与所述已发放额生成;返回到所述轮询本地内存中的预算节点路由表中的各预算节点状态的步骤,以获取一个可用状态的预算节点作为新的预算扣减节点,直至检查到所述累加后的已发放额小于所述新的预算扣减节点的节点预算额时,,执行将所述红包派发至与所述抢红包请求对应的用户设备的步骤。优选地,所述将所述预算扣减节点中的剩余金额转移到所述第一预设预算节点中,具体包括:从各redis缓存实例中确定所述第一预设预算节点,将所述预算扣减节点中的剩余金额转移到所述第一预设预算节点中;当检测到所述第一预设预算节点中的节点预算额发生变化时,将所述预算节点路由表中与所述第一预设预算节点对应的预算节点状态设置为可用状态。优选地,在所述根据所述抢红包请求轮询本地内存中的预算节点路由表之前,所述方法还包括:在首次接收与所述活动对应的抢红包请求时,根据与所述redis缓存实例中的信息在本地内存中生成所述预算节点路由表。优选地,所述将本次派发的红包的金额保存到所述后台数据库之后,所述方法还包括:当所述后台数据库中的活动总预算增加时,对所述redis缓存中的活动总预算、以及所述redis缓存实例中的节点预算额进行更新;在应用服务器接收到新的抢红包请求时,将更新后的所述redis缓存中的活动总预算与所述预算节点路由表中的活动总预算进行比较,当比较结果为不同时,对所述预算节点路由表中的活动总预算进行更新,并将所述预算节点路由表中的各预算节点状态设置为可用状态。优选地,所述根据所述预算扣减节点中的节点预算额生成红包之前,所述方法还包括:当所述redis缓存出现失效时,从所述第一数据库及所述第二数据库中重新加载与所述失效信息对应的预算节点信息。优选地,所述应用服务器接收用户设备发送的请求之前,所述在接收用户设备发送的与所述活动对应的抢红包请求时之前,所述方法还包括:在所述抢红包请求的流量超过预设限制流量时,对后续的抢红包请求进行限制。此外,为实现上述目的,本专利技术还提出一种红包实时派发装置,所述红包实时派发装置包括:处理器,存储器及存储在所述存储器上并可在所述处理器上运行的红包实时派发程序以及预算节点路由表;所述预算节点路由表用于从各redis缓存实例中读取多个预算节点,并对所述多个预算节点进行路由选择;所述红包实时派发配置为实现如上文所述红包实时派发的方法的步骤。此外,为实现上述目的,本专利技术还提出一种红包实时派发系统,所述系统包括:如上文所述的红包实时派发装置、redis缓存集群、第一数据库以及第二数据库;所述redis缓存集群包括n个redis缓存实例,用于缓存预算节点中的节点预算额和已发放额,并根据所述已发放额周期性地对所述第一数据库进行更新;所述第二数据库用于对所述累加后的已发放额以及与所述红包对应的派发记录进行实时保存。此外,为实现上述目的,本专利技术还提出一种存储介质,所述存储介质上存储所述红包实时派发程序,所述红包实时派发程序被处理器执行时实现如上文所述的红包实时派发的方法的步骤。本专利技术在创建活动时,通过将活动总预算拆分成多份分配到各redis缓存实例中,每个redis缓存实例具有一个预算节点,应用服务器接收抢红包请求,轮询本地内存中的预算节点路由表以获取可用状态的预算扣减节点,将抢红包请求关联到预算扣减节点,并生成红包;利用redis的单线程串行特性,当红包的金额满足预设条件时,将红包派发至与所述请求对应的用户设备;当红包的金额不满足预设条件时,对预算扣减节点中的碎片进行转移,并寻找下一个预算节点进行处理。进而能够提高系统的并发处理能力,保证各个预算节点操作的同步性及实时性,同时又能保证预算扣减的准确性,进而提高了用户体验及保证资金安全。附图说明图1是本专利技术实施例方案涉及的硬件运行环境的红包实时派发装置的结构示意图;图2为本专利技术红包实时派发的方法第一实施例的流程示意图;图3为本专利技术实施例活动预算管理的数据模型示意图;图4为本专利技术红包实时派发的方法第二实施例的流程示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。参照图1,图1为本专利技术实施例方案涉及的硬件运行环境的红包实时派发装置的结构示意图。如图1所示,该红包实时派发装置可以包括:处理器1001,例如C本文档来自技高网...
一种红包实时派发的方法、装置、系统及存储介质

【技术保护点】
一种红包实时派发的方法,其特征在于,所述方法包括:创建活动时,将活动总预算拆分成n份节点预算额,将n份节点预算额分配到各redis缓存实例中的预算节点,并将各节点预算额保存到第一数据库;其中,各redis缓存实例分别具有一个预算节点,所述预算节点还包括已发放额;在接收用户设备发送的与所述活动对应的抢红包请求时,轮询本地内存中的预算节点路由表中的各预算节点状态,以选取一个可用状态的redis缓存实例中的预算节点作为预算扣减节点,将所述抢红包请求关联到所述预算扣减节点;其中,所述预算节点路由表记录各预算节点状态;根据所述预算扣减节点中的节点预算额生成红包,将所述红包的金额累加到所述已发放额;当累加后的已发放额满足预设条件时,将所述红包派发至与所述抢红包请求对应的用户设备,并将所述累加后的已发放额以及与所述红包对应的派发记录保存到第二数据库。

【技术特征摘要】
1.一种红包实时派发的方法,其特征在于,所述方法包括:创建活动时,将活动总预算拆分成n份节点预算额,将n份节点预算额分配到各redis缓存实例中的预算节点,并将各节点预算额保存到第一数据库;其中,各redis缓存实例分别具有一个预算节点,所述预算节点还包括已发放额;在接收用户设备发送的与所述活动对应的抢红包请求时,轮询本地内存中的预算节点路由表中的各预算节点状态,以选取一个可用状态的redis缓存实例中的预算节点作为预算扣减节点,将所述抢红包请求关联到所述预算扣减节点;其中,所述预算节点路由表记录各预算节点状态;根据所述预算扣减节点中的节点预算额生成红包,将所述红包的金额累加到所述已发放额;当累加后的已发放额满足预设条件时,将所述红包派发至与所述抢红包请求对应的用户设备,并将所述累加后的已发放额以及与所述红包对应的派发记录保存到第二数据库。2.如权利要求1所述的方法,其特征在于,所述当累加后的已发放额满足预设条件时,将所述红包派发至与所述抢红包请求对应的用户设备之前,所述方法还包括:检查到累加后的已发放额小于所述预算扣减节点的节点预算额时,,执行将所述红包派发至与所述抢红包请求对应的用户设备的步骤;或检查到所述预算扣减节点需进行预算碎片整理,或累加后的已发放额不小于所述预算扣减节点的节点预算额时时,将所述预算扣减节点状态设置为不可用;将所述预算扣减节点中的剩余金额转移到所述第一预设预算节点中,所述剩余金额由所述节点预算额与所述已发放额生成;返回到所述轮询本地内存中的预算节点路由表中的各预算节点状态的步骤,以获取一个可用状态的预算节点作为新的预算扣减节点,直至检查到所述累加后的已发放额小于所述新的预算扣减节点的节点预算额时,,执行将所述红包派发至与所述抢红包请求对应的用户设备的步骤。3.如权利要求2所述的方法,其特征在于,所述将所述预算扣减节点中的剩余金额转移到所述第一预设预算节点中,具体包括:从各redis缓存实例中获取所述第一预设预算节点,将所述预算扣减节点中的剩余金额转移到所述第一预设预算节点中;当检测到所述第一预设预算节点中的节点预算额发生变化时,将所述预算节点路由表中与所述第一预设预算节点对应的预算节点状态设置为可用状态。4.如权利要求1所述的方法,其特征在于,在所述根据所述...

【专利技术属性】
技术研发人员:刘成武许志鹏熊胜杰杨文武
申请(专利权)人:广州唯品会网络技术有限公司
类型:发明
国别省市:广东,44

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

1