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缓存实例中的预算节点,并将各节点预算额保存到第一数据库;其中,各 ...
【技术保护点】
一种红包实时派发的方法,其特征在于,所述方法包括:创建活动时,将活动总预算拆分成n份节点预算额,将n份节点预算额分配到各redis缓存实例中的预算节点,并将各节点预算额保存到第一数据库;其中,各redis缓存实例分别具有一个预算节点,所述预算节点还包括已发放额;在接收用户设备发送的与所述活动对应的抢红包请求时,轮询本地内存中的预算节点路由表中的各预算节点状态,以选取一个可用状态的redis缓存实例中的预算节点作为预算扣减节点,将所述抢红包请求关联到所述预算扣减节点;其中,所述预算节点路由表记录各预算节点状态;根据所述预算扣减节点中的节点预算额生成红包,将所述红包的金额累加到所述已发放额;当累加后的已发放额满足预设条件时,将所述红包派发至与所述抢红包请求对应的用户设备,并将所述累加后的已发放额以及与所述红包对应的派发记录保存到第二数据库。
【技术特征摘要】
1.一种红包实时派发的方法,其特征在于,所述方法包括:创建活动时,将活动总预算拆分成n份节点预算额,将n份节点预算额分配到各redis缓存实例中的预算节点,并将各节点预算额保存到第一数据库;其中,各redis缓存实例分别具有一个预算节点,所述预算节点还包括已发放额;在接收用户设备发送的与所述活动对应的抢红包请求时,轮询本地内存中的预算节点路由表中的各预算节点状态,以选取一个可用状态的redis缓存实例中的预算节点作为预算扣减节点,将所述抢红包请求关联到所述预算扣减节点;其中,所述预算节点路由表记录各预算节点状态;根据所述预算扣减节点中的节点预算额生成红包,将所述红包的金额累加到所述已发放额;当累加后的已发放额满足预设条件时,将所述红包派发至与所述抢红包请求对应的用户设备,并将所述累加后的已发放额以及与所述红包对应的派发记录保存到第二数据库。2.如权利要求1所述的方法,其特征在于,所述当累加后的已发放额满足预设条件时,将所述红包派发至与所述抢红包请求对应的用户设备之前,所述方法还包括:检查到累加后的已发放额小于所述预算扣减节点的节点预算额时,,执行将所述红包派发至与所述抢红包请求对应的用户设备的步骤;或检查到所述预算扣减节点需进行预算碎片整理,或累加后的已发放额不小于所述预算扣减节点的节点预算额时时,将所述预算扣减节点状态设置为不可用;将所述预算扣减节点中的剩余金额转移到所述第一预设预算节点中,所述剩余金额由所述节点预算额与所述已发放额生成;返回到所述轮询本地内存中的预算节点路由表中的各预算节点状态的步骤,以获取一个可用状态的预算节点作为新的预算扣减节点,直至检查到所述累加后的已发放额小于所述新的预算扣减节点的节点预算额时,,执行将所述红包派发至与所述抢红包请求对应的用户设备的步骤。3.如权利要求2所述的方法,其特征在于,所述将所述预算扣减节点中的剩余金额转移到所述第一预设预算节点中,具体包括:从各redis缓存实例中获取所述第一预设预算节点,将所述预算扣减节点中的剩余金额转移到所述第一预设预算节点中;当检测到所述第一预设预算节点中的节点预算额发生变化时,将所述预算节点路由表中与所述第一预设预算节点对应的预算节点状态设置为可用状态。4.如权利要求1所述的方法,其特征在于,在所述根据所述...
【专利技术属性】
技术研发人员:刘成武,许志鹏,熊胜杰,杨文武,
申请(专利权)人:广州唯品会网络技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。