一种数据处理方法及相关装置
文献发布时间:2024-04-18 20:01:23
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法及相关装置。
背景技术
随着互联网和计算机技术的迅速发展,直播电商作为一种新型的电子商务模式,正逐渐成为消费者购物的新选择。直播电商通过在线直播的方式,将商品展示、销售和互动融合在一起,为消费者提供了全新的购物体验。
在电商直播过程中,当直播间的人流量突然增长时,直播间内售卖的商品很可能成为热点商品。如果系统没有针对热点商品进行缓存预热和流量控制,可能会导致应用和中间件的负载上升,从而使直播平台奔溃。
发明内容
本申请实施例提供了一种数据处理方法以及相关装置,解决了现有技术的由于商品的流量突增造成的应用和中间件负载上升所导致的直播平台奔溃的问题。
本申请的一方面提供一种数据处理方法,包括:
接收客户端发送的目标对象的库存数据查询请求,其中,库存数据查询请求携带目标对象的标识信息,库存数据查询请求对应于查询请求序列号,查询请求序列号表征对目标对象进行库存数据查询的请求次序;
根据目标对象的标识信息,获取本地缓存空间中目标对象的状态信息;
当目标对象的状态信息为第一状态信息时,获取目标对象对应的限流阈值,其中,第一状态信息用于指示允许对目标对象执行下单行为,限流阈值为根据目标对象的库存数据计算得到的;
当查询请求序列号大于限流阈值时,向客户端发送目标对象的状态信息为第一状态信息;
接收客户端发送的目标对象的下单行为请求,其中,下单行为请求携带目标对象的标识信息,下单行为请求对应于下单行为请求序列号,下单行为请求序列号表征对目标对象进行下单行为的请求次序;
当下单行为请求序列号小于等于限流阈值时,对目标对象的库存数据进行扣减;
当扣减成功时,向客户端发送下单成功信息。
本申请的另一方面提供了一种数据处理装置,包括:查询请求接收模块、状态信息获取模块、限流阈值获取模块、第一状态信息发送模块、下单行为请求接收模块、数据扣减模块及下单成功信息发送模块;具体的:
查询请求接收模块,用于接收客户端发送的目标对象的库存数据查询请求,其中,库存数据查询请求携带目标对象的标识信息,库存数据查询请求对应于查询请求序列号,查询请求序列号表征对目标对象进行库存数据查询的请求次序;
状态信息获取模块,用于根据目标对象的标识信息,获取本地缓存空间中目标对象的状态信息,
限流阈值获取模块,用于当目标对象的状态信息为第一状态信息时,获取目标对象对应的限流阈值,其中,第一状态信息用于指示允许对目标对象执行下单行为,限流阈值为根据目标对象的库存数据计算得到的;
第一状态信息发送模块,用于当查询请求序列号大于限流阈值时,向客户端发送目标对象的状态信息为第一状态信息;
下单行为请求接收模块,用于接收客户端发送的目标对象的下单行为请求,其中,下单行为请求携带目标对象的标识信息,下单行为请求对应于下单行为请求序列号,下单行为请求序列号表征对目标对象进行下单行为的请求次序;
数据扣减模块,用于当下单行为请求序列号小于等于限流阈值时,对目标对象的库存数据进行扣减;
下单成功信息发送模块,用于当扣减成功时,向客户端发送下单成功信息。
在本申请实施例的另一种实现方式中,下单行为请求携带下单行为对应的目标对象的指定数据;
数据扣减模块,还用于:
获取服务器缓存空间中目标对象的库存数据;
当下单行为对应的目标对象的指定数据小于等于服务器缓存空间中目标对象的库存数据时,根据指定数据对服务器缓存空间中目标对象的库存数据进行扣减,且返回扣减成功信息。
在本申请实施例的另一种实现方式中,数据扣减模块,还用于:
根据下单行为对应的目标对象的指定数据,对服务器缓存空间中目标对象的库存数据中的全部库存数据或部分库存数据进行冻结。
在本申请实施例的另一种实现方式中,数据处理装置还包括:下单失败信息发送模块;
下单失败信息发送模块,用于当下单行为对应的目标对象的指定数据大于服务器缓存空间中目标对象的库存数据时,返回扣减失败信息,并向客户端发送下单失败信息。
在本申请实施例的另一种实现方式中,数据处理装置还包括:库存数据获取模块、库存数据信息发送模块及第二状态信息发送模块;具体的:
库存数据获取模块,用于当查询请求序列号小于等于限流阈值时,获取服务器缓存空间中目标对象的库存数据;
库存数据信息发送模块,用于当库存数据大于库存数据阈值时,向客户端发送目标对象的库存数据信息,其中,库存数据信息为根据库存数据生成的;
第二状态信息发送模块,用于当库存数据小于等于库存数据阈值时,则向客户端发送目标对象的状态信息为第二状态信息,其中,第二状态信息用于指示不允许对目标对象执行下单行为。
在本申请实施例的另一种实现方式中,数据处理装置还包括:状态信息更新模块;
状态信息更新模块,用于将本地缓存空间中目标对象的状态信息更新为第二状态信息。
在本申请实施例的另一种实现方式中,数据处理装置还包括:互动数据获取模块、目标直播间确定模块及目标对象标记模块;具体的:
互动数据获取模块,用于获取直播间的互动数据;
目标直播间确定模块,用于当互动数据满足互动数据阈值时,将直播间标记为目标直播间;
目标对象标记模块,用于将目标直播间中的对象标记为目标对象。
在本申请实施例的另一种实现方式中,数据处理装置还包括:限流阈值计算模块;
限流阈值计算模块,用于:
获取服务器缓存空间中目标对象的库存数据及服务器缓存空间的性能信息;
根据服务器缓存空间中目标对象的库存数据及服务器缓存空间的性能信息,计算目标对象对应的限流阈值。
在本申请实施例的另一种实现方式中,数据处理装置还包括:状态信息更新模块;
状态信息更新模块,用于根据限流阈值及目标对象的库存数据,对本地缓存空间中目标对象的状态信息进行更新。
在本申请实施例的另一种实现方式中,数据处理装置还包括:查询请求序列号设定模块;
查询请求序列号设定模块,用于:
根据目标对象对应的标识信息,获取目标对象对应的历史库存数据查询请求的数量;
根据目标对象对应的历史库存数据查询请求的数量,为库存数据查询请求设定查询请求序列号。
在本申请实施例的另一种实现方式中,第二状态信息发送模块,还用于当目标对象的状态信息为第二状态信息时,向客户端发送目标对象的状态信息为第二状态信息,其中,第二状态信息用于指示不允许对目标对象执行下单行为。
在本申请实施例的另一种实现方式中,下单行为请求失败信息发送模块,还用于:当下单行为请求序列号大于限流阈值时,向客户端发送下单行为请求失败信息。
本申请的另一方面提供了一种计算机设备,包括:
存储器、收发器、处理器以及总线系统;
其中,存储器用于存储程序;
处理器用于执行存储器中的程序,包括执行上述各方面的方法;
总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。
本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
本申请的另一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方面所提供的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请提供了一种数据处理方法以及相关装置,其方法包括:首先,接收客户端发送的目标对象的库存数据查询请求,其中,库存数据查询请求携带目标对象的标识信息,库存数据查询请求对应于查询请求序列号,查询请求序列号表征对目标对象进行库存数据查询的请求次序;其次,根据目标对象的标识信息,获取本地缓存空间中目标对象的状态信息;再次,当目标对象的状态信息为第一状态信息时,获取目标对象对应的限流阈值,其中,第一状态信息用于指示允许对目标对象执行下单行为,限流阈值为根据目标对象的库存数据计算得到的;然后,当查询请求序列号大于限流阈值时,向客户端发送目标对象的状态信息为第一状态信息;接着,接收客户端发送的目标对象的下单行为请求,其中,下单行为请求携带目标对象的标识信息,下单行为请求对应于下单行为请求序列号,下单行为请求序列号表征对目标对象进行下单行为的请求次序;然后,当下单行为请求序列号小于等于限流阈值时,对目标对象的库存数据进行扣减;最后,当扣减成功时,向客户端发送下单成功信息。本申请实施例提供了一种数据处理方法,通过限流阈值的引入,可以控制对目标对象的库存数据查询和下单行为请求的流量,避免高并发请求对系统造成的负载压力,解决了由于商品的流量突增造成的应用和中间件负载上升所导致的直播平台奔溃的问题;当查询请求序列号大于限流阈值时,向客户端发送目标对象的状态信息,以及时告知用户目标对象是否可供销售,避免无效的下单请求;接收客户端发送的目标对象的下单请求,并通过下单请求序列号和限流阈值控制下单行为的流量,避免过度并发的下单请求对系统造成的压力;当下单请求序列号小于等于限流阈值时,对目标对象的库存数据进行扣减,以确保系统能够处理有效的下单请求,并及时更新库存数据;当扣减成功时,向客户端发送下单成功信息,及时向用户反馈下单行为的结果,提供良好的用户体验。
附图说明
图1为本申请某一实施例提供的数据处理系统的一个架构示意图;
图2为本申请某一实施例提供的数据处理方法的流程图;
图3为本申请另一实施例提供的数据处理方法的流程图;
图4为本申请另一实施例提供的数据处理方法的流程图;
图5为本申请另一实施例提供的数据处理方法的流程图;
图6为本申请另一实施例提供的数据处理方法的流程图;
图7为本申请另一实施例提供的数据处理方法的流程图;
图8为本申请又一实施例提供的数据处理方法的流程图;
图9为本申请某一实施例提供的数据处理系统的结构图;
图10为本申请某一实施例提供的热点库存发现和限流阈值初始化阶段的流程图;
图11为本申请某一实施例提供的库存查询阶段的流程图;
图12为本申请某一实施例提供的下单查询并冻结/扣减库存阶段的流程图;
图13为本申请某一实施例提供的数据处理装置的结构示意图;
图14为本申请某一实施例提供的服务器结构示意图。
具体实施方式
本申请实施例提供了一种数据处理方法,通过限流阈值的引入,可以控制对目标对象的库存数据查询和下单行为请求的流量,避免高并发请求对系统造成的负载压力,解决了由于商品的流量突增造成的应用和中间件负载上升所导致的直播平台奔溃的问题。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
在电商直播过程中,当直播间的人流量突然增长时,直播间内售卖的商品很可能成为热点商品。如果系统没有针对热点商品进行缓存预热和流量控制,可能会导致应用和中间件的负载上升,从而使直播平台奔溃。
在相关技术中,热点商品的发现方案都是通过商品查询频率来判断其是否为热点商品,在直播场景数据前、中、后三个链路中属于中间链路发现;同时针对热点商品、库存的优化都是通过库存分片、加缓存等方式“硬抗”,即针对热点商品的库存查询请求和下单请求时,通常采用横向扩容的方式来抵御这部分请求流量。然而,当流量超过集群复杂度时,通常会使用统一的限流方式进行拦截。这种方式存在以下问题:1)浪费大量资源来抵御突增流量;2)当限流无法承受时,限流粒度是接口维度的,会导致某几个热点商品的限流影响其他商品。
本申请某一实施例提供的方法,在直播过程中,通过播间的互动数据(例如单位之间内直播间的人数以及直播间人数的每秒增长率)提前对直播间是否为热点直播间进行判断,进而提前发现热点商品,在直播场景数据前、中、后三个链路中属于前置链路发现。而对于热点商品的发现,仅需要统计直播间人数并计算时间窗口内的波动人数就可以实现,不需要浪费额外的计算资源。同时,库存数据的相关接口做到SKU(Stock Keeping Unit,库存量单位)级别的特征限流,根据不同的SKUID(Stock Keeping Unit IDentification,库存单位标识符)指定不同的限流阈值,避免库存数据的查询、下单扣减接口限流范围过大。
本申请实施例提供了一种数据处理方法,通过限流阈值的引入,可以控制对目标对象的库存数据查询和下单行为请求的流量,避免高并发请求对系统造成的负载压力,解决了由于商品的流量突增造成的应用和中间件负载上升所导致的直播平台奔溃的问题;当查询请求序列号大于限流阈值时,向客户端发送目标对象的状态信息,以及时告知用户目标对象是否可供销售,避免无效的下单请求;接收客户端发送的目标对象的下单请求,并通过下单请求序列号和限流阈值控制下单行为的流量,避免过度并发的下单请求对系统造成的压力;当下单请求序列号小于等于限流阈值时,对目标对象的库存数据进行扣减,以确保系统能够处理有效的下单请求,并及时更新库存数据;当扣减成功时,向客户端发送下单成功信息,及时向用户反馈下单行为的结果,提供良好的用户体验。
为了便于理解,请参阅图1,图1为本申请实施例中数据处理方法的应用环境图,如图1所示,本申请实施例中数据处理方法应用于数据处理系统。数据处理系统包括:服务器和终端设备;其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端和服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例在此不做限制。
服务器首先接收客户端发送的目标对象的库存数据查询请求,其中,库存数据查询请求携带目标对象的标识信息,库存数据查询请求对应于查询请求序列号,查询请求序列号表征对目标对象进行库存数据查询的请求次序;其次,服务器根据目标对象的标识信息,获取本地缓存空间中目标对象的状态信息;再次,当目标对象的状态信息为第一状态信息时,服务器获取目标对象对应的限流阈值,其中,第一状态信息用于指示允许对目标对象执行下单行为,限流阈值为根据目标对象的库存数据计算得到的;然后,当查询请求序列号大于限流阈值时,服务器向客户端发送目标对象的状态信息为第一状态信息;接着,服务器接收客户端发送的目标对象的下单行为请求,其中,下单行为请求携带目标对象的标识信息,下单行为请求对应于下单行为请求序列号,下单行为请求序列号表征对目标对象进行下单行为的请求次序;然后,当下单行为请求序列号小于等于限流阈值时,服务器对目标对象的库存数据进行扣减;最后,当扣减成功时,服务器向客户端发送下单成功信息。
下面将从服务器的角度,对本申请中数据处理方法进行介绍。请参阅图2,本申请实施例提供的数据处理方法包括:步骤S110至步骤S170。可以理解的是,本申请实施例可应用于对目标对象的库存数据的请求存在高并发或者对目标对象的下单请求量存在高并发的场景,例如,在直播间中,在短时间内对同一商品的商品详情点击(即商品的库存数据请求)量较大,或者在短时间内对同一商品的下单(即商品的下单请求)量较大的场景。具体的:
S110、接收客户端发送的目标对象的库存数据查询请求。
其中,库存数据查询请求携带目标对象的标识信息,库存数据查询请求对应于查询请求序列号,查询请求序列号表征对目标对象进行库存数据查询的请求次序。
可以理解的是,目标对象可以是目标商品,例如可以是热点直播间中的任意商品,热点直播间中的商品也称热点商品,热点商品往往存在对库存数据查询请求存在高并发的情况,以及下单行为请求存在高并发的情况。
当用户在热点直播间中点击某一目标对象时,由客户端发起对该目标对象的库存数据查询请求,该库存数据查询请求携带目标对象的标识信息。
当服务器接收到该库存数据查询请求后,会根据携带的目标对象标识信息,获取对该目标对象进行库存数据查询请求的历史数据量,从而为该库存数据查询请求配置查询请求序列号,例如,库存数据查询请求配置的查询请求序列号=库存数据查询请求的历史数据量+1。举例说明,在直播间中,用户点击某一商品a的详情信息,由客户端根据该用户的点击行为生成对于商品a的库存数据查询请求A,并将该库存数据查询请求发送至服务器,服务器接收到该库存数据查询请求A后,根据库存数据查询请求A携带的商品a的标识信息,获取该商品a的库存数据查询请求的历史数据量,假设库存数据查询请求的历史数据量为99,则设置此次库存数据查询请求的查询请求序列号为100。库存数据查询请求的历史数据量可以包含该用户在此次点击行为之前的点击行为对应的次库存数据查询请求,还可以包含其他用户在该用户此次点击行为之前的点击行为对应的库存数据查询请求,本申请实施例在此不作限制。
S120、根据目标对象的标识信息,获取本地缓存空间中目标对象的状态信息。
可以理解的是,状态信息包括第一状态信息及第二状态信息,其中,第一状态信息用于表征该允许对该目标对象执行目标行为请求,第二状态信息用于表征不允许对该目标对象执行目标行为请求。即,当目标对象的状态信息为第一状态信息时,用户可以对该目标对象进行下单,当目标对象的状态信息为第二状态信息时,用户无法对该目标对象进行下单。
目标对象的状态信息存储于本地缓存空间有益于在高并发访问的情况下快速获取到目标对象的状态信息,减少用户的等待时间,提高用户体验。
S130、当目标对象的状态信息为第一状态信息时,获取目标对象对应的限流阈值。
其中,第一状态信息用于指示允许对目标对象执行下单行为,限流阈值为根据目标对象的库存数据计算得到的。
可以理解的是,当本地存储的目标对象的状态信息为第一状态信息时,需要获取目标对象对应的限流阈值。
限流阈值是指在直播间购物时,为了保证系统的稳定性和用户体验,对每个商品设置的一个最大购买量或访问量的限制。当某个商品的购买量或访问量达到限流阈值时,会对该商品进行限流,即限制其他用户对该商品的购买或访问。限流阈值是为了保证系统的稳定性和用户体验,对商品购买量或访问量进行限制的一种措施,同时还可以有效地防止恶意刷单和促进公平竞争,保护用户的利益。
限流阈值为根据目标对象在开启销售之前的库存数据(可售库存)计算的得到。优选的,可以通过以下公式表示:
限流阈值=Min(2×(可售库存÷支付转化率),redis集群单分片最大qps÷2);
其中,一般支付转化率为90%至95%,redis集群单分片最大qps是指单个redis分片(shard)中每秒可以处理的最大查询次数,通常为8W-10W。
S140、当查询请求序列号大于限流阈值时,向客户端发送目标对象的状态信息为第一状态信息。
可以理解的是,当查询请求序列号大于限流阈值时,告知用户目标对象为可售状态。由于存在部分用户会对目标对象进行库存数据查询,但是并不会对目标对象执行下单行为,若仅仅通过限流阈值对其他用户进行拦截,则会导致其他有下单行为意愿的用户无法进行下单行为。例如,设用户A的查询请求序列号为101,而计算得到的限流阈值为100时,通过向客户端发送目标对象的状态信息为第一状态信息,以告知用户该目标对象仍然可售,用户A仍然可以对目标对象进行下单行为请求。
S150、接收客户端发送的目标对象的下单行为请求。
其中,下单行为请求携带目标对象的标识信息,下单行为请求对应于下单行为请求序列号,下单行为请求序列号表征对目标对象进行下单行为的请求次序。
可以理解的是,当用户通过点击对目标对象的购买控件时,由客户端发起对该目标对象的下单行为请求,该下单行为请求携带目标对象的标识信息。
当服务器接收到该下单行为请求后,会根据携带的目标对象标识信息,获取对该目标对象进行下单行为请求的历史数据量,从而为该下单行为请求配置下单行为请求序列号,例如,下单行为请求配置的下单行为请求序列号=下单行为请求的历史数据量+1。举例说明,在直播间中,用户点击某一商品a的购买控件,由客户端根据该用户的点击行为生成对于商品a的下单行为请求A,并将该下单行为请求发送至服务器,服务器接收到该下单行为请求A后,根据下单行为请求A携带的商品a的标识信息,获取该商品a的下单行为请求的历史数据量,假设下单行为请求的历史数据量为99,则设置此次下单行为请求的下单行为请求序列号为100。下单行为请求的历史数据量可以包含该用户在此次点击行为之前的点击行为对应的下单行为请求,还可以包含其他用户在该用户此次点击行为之前的点击行为对应的下单行为请求,本申请实施例在此不作限制。
S160、当下单行为请求序列号小于等于限流阈值时,对目标对象的库存数据进行扣减。
可以理解的是,当单行为请求序列号小于等于限流阈值时,则根据下单行为请求中携带的目标对象的标识信息,对目标对象的库存数据进行扣减。此时存在两种情况,若扣减成功,则表示用户对目标对象下单成功,若扣减失败,则表示用户对目标对象下单失败。
S170、当扣减成功时,向客户端发送下单成功信息。
可以理解的是,若成功对目标对象的库存数据进行扣减,则表明该目标对象的库存充足,用户下单成功,通过向客户端发送下单成功信息以告知用户下单成功,并跳转至支付界面。
本申请实施例提供了一种数据处理方法,通过限流阈值的引入,可以控制对目标对象的库存数据查询和下单行为请求的流量,避免高并发请求对系统造成的负载压力,解决了由于商品的流量突增造成的应用和中间件负载上升所导致的直播平台奔溃的问题;当查询请求序列号大于限流阈值时,向客户端发送目标对象的状态信息,以及时告知用户目标对象是否可供销售,避免无效的下单请求;接收客户端发送的目标对象的下单请求,并通过下单请求序列号和限流阈值控制下单行为的流量,避免过度并发的下单请求对系统造成的压力;当下单请求序列号小于等于限流阈值时,对目标对象的库存数据进行扣减,以确保系统能够处理有效的下单请求,并及时更新库存数据;当扣减成功时,向客户端发送下单成功信息,及时向用户反馈下单行为的结果,提供良好的用户体验。
在本申请的图2对应的实施例提供的数据处理方法的一个可选实施例中,请参阅图3,下单行为请求携带下单行为对应的目标对象的指定数据。可以理解的是,指定数据是指下单行为请求中对目标对象进行下单的数量,例如,当指定数据为1时,表示用户欲对1个目标对象进行下单,当指定数据为2时,表示用户欲对2个目标对象进行下单。
步骤S160进一步包括子步骤S161至子步骤S162。具体的:
S161、获取服务器缓存空间中目标对象的库存数据。
可以理解的是,服务器缓存空间中存储着目标对象实时的库存数据,且服务器缓存空间中的目标对象的库存数据是可靠和准确的。
S162、当下单行为对应的目标对象的指定数据小于等于服务器缓存空间中目标对象的库存数据时,根据指定数据对服务器缓存空间中目标对象的库存数据进行扣减,且返回扣减成功信息。
可以理解的是,将下单行为对应的目标对象的指定数据与服务器缓存空间中目标对象的库存数据进行对比,若当下单行为对应的目标对象的指定数据小于等于服务器缓存空间中目标对象的库存数据时,表示用户想要下单的数量充足,此时需要根据指定数据对服务器缓存空间中的库存数据进行扣减,根据扣减后的剩余数量对空间中目标对象的库存数据进行更新,且返回扣减成功信息。
举例说明,服务器缓存空间中目标对象的库存数据为4(即表示还有4个目标对象可售),下单行为请求携带下单行为对应的目标对象的指定数据为3(即表示用户欲下单3个目标对象),此时下单行为对应的目标对象的指定数据小于服务器缓存空间中目标对象的库存数据,根据指定数据对服务器缓存空间中目标对象的库存数据进行扣减,即将服务器缓存空间中目标对象的库存数据由4扣减去3,且返回扣减成功信息,并根据扣减后的剩余数量对空间中目标对象的库存数据进行更新,更新后的目标对象的库存数据为1,且返回扣减成功信息。
优选的,根据指定数据对服务器缓存空间中目标对象的库存数据进行扣减之后,还包括:
根据下单行为对应的目标对象的指定数据,对服务器缓存空间中目标对象的库存数据中的全部库存数据或者部分库存数据进行冻结。
可以理解的是,当扣减成功后,会根据指定数据对库存数据中的全部数据或部分数据进行冻结,被冻结的数据对应的目标对象无法被其他用户进行下单。
举例说明,服务器缓存空间中目标对象的库存数据为4(即表示还有4个目标对象可售),下单行为请求携带下单行为对应的目标对象的指定数据为4(即表示用户欲下单4个目标对象),此时下单行为对应的目标对象的指定数据等于服务器缓存空间中目标对象的库存数据,根据指定数据对服务器缓存空间中目标对象的库存数据进行扣减,即将服务器缓存空间中目标对象的库存数据由4扣减去4,且对库存数据中的全部数据进行冻结,且返回扣减成功信息,并根据扣减后的剩余数量对空间中目标对象的库存数据进行更新,更新后的目标对象的库存数据为0,且返回扣减成功信息。
本申请实施例提供了一种数据处理方法,保证了下单行为的有效性和准确性。通过先获取服务器缓存空间中目标对象的库存数据,再将其与下单行为对应的目标对象的指定数据进行比较,可以确保用户下单的数量不会超过目标对象的实际库存数量,从而避免了无效订单的生成。还提高了系统的可靠性和响应速度。由于服务器缓存空间中的库存数据是实时更新的,因此可以快速地响应用户的下单行为,提供准确的库存信息,并根据实际情况进行库存扣减。这样可以提高用户的购物体验,增强用户对系统的信任感。
在本申请的图3对应的实施例提供的数据处理方法的一个可选实施例中,请参阅图4,步骤S161之后还包括步骤S163。具体的:
S163、当下单行为对应的目标对象的指定数据大于服务器缓存空间中目标对象的库存数据时,返回扣减失败信息,并向客户端发送下单失败信息。
可以理解的是,将下单行为对应的目标对象的指定数据与服务器缓存空间中目标对象的库存数据进行对比,若当下单行为对应的目标对象的指定数据大于服务器缓存空间中目标对象的库存数据时,表示库存数据无法满足用户想要下单的数量,此时会出现扣减失败的情形,返回扣减失败信息,并向客户端发送下单失败信息,以告知用户由于库存数量无法满足下单数量,因此下单失败。
举例说明,服务器缓存空间中目标对象的库存数据为4(即表示还有4个目标对象可售),下单行为请求携带下单行为对应的目标对象的指定数据为5(即表示用户欲下单5个目标对象),此时下单行为对应的目标对象的指定数据大于服务器缓存空间中目标对象的库存数据,无法根据指定数据对服务器缓存空间中目标对象的库存数据进行扣减,库存数据无法满足用户想要下单的数量,此时会出现扣减失败的情形,返回扣减失败信息,并向客户端发送下单失败信息,以告知用户由于库存数量无法满足下单数量,因此下单失败。
本申请实施例提供了一种数据处理方法,确保了订单的有效性和准确性。通过将下单行为对应的目标对象的指定数据与服务器缓存空间中目标对象的库存数据进行比较,可以避免用户下单数量超过实际库存数量的情况,从而避免了无效订单的生成。这一步骤还提高了系统的可靠性和响应速度。由于服务器缓存空间中的库存数据是实时更新的,因此可以快速地响应用户的下单行为,提供准确的库存信息,并根据实际情况进行库存扣减。这样可以提高用户的购物体验,增强用户对系统的信任感。
在本申请的图2对应的实施例提供的数据处理方法的一个可选实施例中,请参阅图5,步骤S130之后还包括步骤S141至步骤S161。具体的:
S141、当查询请求序列号小于等于限流阈值时,获取服务器缓存空间中目标对象的库存数据。
可以理解的是,当查询请求序列号小于等于限流阈值时,从服务器缓存空间中获取目标对象的实时的库存数据。
S151、当库存数据大于库存数据阈值时,向客户端发送目标对象的库存数据信息。
其中,库存数据信息为根据库存数据生成的。
可以理解的是,库存数据阈值可以是以目标对象是否售罄为依据设定的,优选的,库存数据阈值可以是0。当目标对象的库存数据显示目标对象未售罄(即库存数据大于0),则根据库存数据生成库存数据信息,并向客户端发送目标对象的库存数据信息。
S161、当库存数据小于等于库存数据阈值时,则向客户端发送目标对象的状态信息为第二状态信息。
其中,第二状态信息用于指示不允许对目标对象执行下单行为。
可以理解的是,当目标对象的库存数据显示目标对象售罄(即库存数据等于0),则向客户端发送目标对象的状态信息为第二状态信息,以告知用户目标对象为售罄或者不可售状态。
优选的,向客户端发送目标对象的状态信息为第二状态信息之后,还包括:
将本地缓存空间中目标对象的状态信息更新为第二状态信息。
可以理解的是,由步骤S130可知,本地缓存空间中目标对象的状态信息为第一状态信息(允许用户对目标对象进行下单的状态),由步骤S161可知,服务器缓存空间中目标对象的库存数据所显示的目标对象的状态信息为第二状态信息(不允许用户对目标对象进行下单的状态),由于出现目标对象在本地缓存空间的状态与服务器缓存空间的状态不同,则可能是由于网络延迟,或者,上一笔订单恰巧使得服务器缓存空间的状态由第一状态信息更变为第二状态信息等原因,需要对本地缓存空间中目标对象的状态信息进行更新,即将本地缓存空间中目标对象的状态信息由第一状态信息更变为第二状态信息,以保证本地缓存空间中目标对象的状态信息与服务器缓存空间中目标对象的状态信息一致。
本申请实施例提供了一种数据处理方法,实现了对查询请求的快速响应和处理。通过设置限流阈值,可以控制并发查询请求的数量,避免大量请求同时访问服务器导致系统崩溃或性能下降。当查询请求序列号小于等于限流阈值时,可以直接从服务器缓存空间中获取目标对象的库存数据,提高了查询的实时性和准确性。当库存数据大于库存数据阈值时,向客户端发送目标对象的库存数据信息,使得客户端能够及时获取到目标对象的实时库存情况,以便用户进行下单决策。当库存数据小于等于库存数据阈值时,向客户端发送目标对象的状态信息为第二状态信息,以告知用户目标对象为售罄或者不可售状态。这有助于避免用户进行无效的下单操作,提高用户的购物体验。此外,将本地缓存空间中目标对象的状态信息更新为第二状态信息,确保了本地缓存空间中目标对象的状态信息与服务器缓存空间中目标对象的状态信息一致,避免了因状态不一致而导致的错误或冲突。这样可以提高系统的一致性和可靠性,使用户能够获得准确的信息。
在本申请的图2对应的实施例提供的数据处理方法的一个可选实施例中,请参阅图6,步骤S110之前还包括步骤S210至步骤S230。具体的:
S210、获取直播间的互动数据。
可以理解的是,直播间的互动数据包括单位时间的直播间人数以及每秒增长率。
S220、当互动数据满足互动数据阈值时,将直播间标记为目标直播间。
可以理解的是,目标直播间是指热点直播间,互动数据阈值是指将直播间标记为目标直播间的条件,优选的,对单位时间的直播间人数的进行统计,当单位时间的直播间人数超过1000人,且每秒增长率大于200%时,将直播间标记为目标直播间。
S230、将目标直播间中的对象标记为目标对象。
可以理解的是,将目标直播间中售卖的所有商品(对象)均标记为热点商品(目标对象)。
本申请某一实施例提供的方法,根据直播间的互动数据确定目标直播间(热点直播间),对于热点直播间内售卖的对象(商品)标记为目标对象(热点商品),进而为后续的针对目标对象做缓存预热、流量控制奠定基础。
在本申请的图6对应的实施例提供的数据处理方法的一个可选实施例中,请参阅图7,步骤S230之后还包括步骤S240至步骤S250。具体的:
S240、获取服务器缓存空间中目标对象的库存数据及服务器缓存空间的性能信息。
可以理解的是,服务器缓存空间中存储着目标对象实时的库存数据,且服务器缓存空间中的目标对象的库存数据是可靠和准确的。
优选的,服务器缓存空间为redis集群,服务器缓存空间的性能信息为redis集群单分片最大qps(单个redis分片(shard)中每秒可以处理的最大查询次数)。
S250、根据服务器缓存空间中目标对象的库存数据及服务器缓存空间的性能信息,计算目标对象对应的限流阈值。
限流阈值为根据目标对象在开启销售之前的库存数据(可售库存)计算的得到。优选的,可以通过以下公式表示:
限流阈值=Min(2×(可售库存÷支付转化率),redis集群单分片最大qps÷2);
其中,一般支付转化率为90%至95%,redis集群单分片最大qps是指单个redis分片(shard)中每秒可以处理的最大查询次数,通常为8W-10W。
优选的,计算目标对象对应的限流阈值之后还包括:
根据限流阈值及目标对象的库存数据,对本地缓存空间中目标对象的状态信息进行更新。
可以理解的是,将计算得到的目标对象的限流阈值更新到本地缓存空间,并根据限流阈值及目标对象的库存数据,对本地缓存空间中目标对象的状态信息进行更新。
本申请实施例提供了一种数据处理方法,通过计算目标对象的限流阈值,可以控制对目标对象的库存数据查询和下单行为请求的流量,避免高并发请求对系统造成的负载压力,解决了由于商品的流量突增造成的应用和中间件负载上升所导致的直播平台奔溃的问题。
在本申请的图2对应的实施例提供的数据处理方法的一个可选实施例中,请参阅图8,步骤S110之后还包括步骤S111至步骤S112。具体的:
S111、根据目标对象对应的标识信息,获取目标对象对应的历史库存数据查询请求的数量。
S112、根据目标对象对应的历史库存数据查询请求的数量,为库存数据查询请求设定查询请求序列号。
可以理解的是,当服务器接收到该库存数据查询请求后,会根据携带的目标对象标识信息,获取对该目标对象进行库存数据查询请求的历史数据量,从而为该库存数据查询请求配置查询请求序列号,例如,库存数据查询请求配置的查询请求序列号=库存数据查询请求的历史数据量+1。举例说明,在直播间中,用户点击某一商品a的详情信息,由客户端根据该用户的点击行为生成对于商品a的库存数据查询请求A,并将该库存数据查询请求发送至服务器,服务器接收到该库存数据查询请求A后,根据库存数据查询请求A携带的商品a的标识信息,获取该商品a的库存数据查询请求的历史数据量,假设库存数据查询请求的历史数据量为99,则设置此次库存数据查询请求的查询请求序列号为100。库存数据查询请求的历史数据量可以包含该用户在此次点击行为之前的点击行为对应的次库存数据查询请求,还可以包含其他用户在该用户此次点击行为之前的点击行为对应的库存数据查询请求,本申请实施例在此不作限制。
本申请实施例提供了一种数据处理方法,为库存数据查询请求设定查询请求序列号,以便对查询请求进行排序和处理,提高查询效率和准确性。具体来说,根据目标对象对应的历史库存数据查询请求的数量来设定查询请求序列号,可以对不同目标对象的查询请求进行区分和排序,避免重复查询和冲突。同时,通过为每个查询请求配置唯一的序列号,可以方便地获取和管理查询请求的状态和结果,提高查询系统的可靠性和稳定性。
在本申请的图2对应的实施例提供的数据处理方法的一个可选实施例中,步骤S120之后还包括以下步骤:
当目标对象的状态信息为第二状态信息时,向客户端发送目标对象的状态信息为第二状态信息。
其中,第二状态信息用于指示不允许对目标对象执行下单行为。
可以理解的是,状态信息包括第一状态信息及第二状态信息,其中,第一状态信息用于表征该允许对该目标对象执行目标行为请求,第二状态信息用于表征不允许对该目标对象执行目标行为请求。即,当目标对象的状态信息为第一状态信息时,用户可以对该目标对象进行下单,当目标对象的状态信息为第二状态信息时,用户无法对该目标对象进行下单。
本申请实施例提供了一种数据处理方法,将目标对象的状态信息存储于本地缓存空间有益于在高并发访问的情况下快速获取到目标对象的状态信息,减少用户的等待时间,提高用户体验。
在本申请的图2对应的实施例提供的数据处理方法的一个可选实施例中,步骤S150之后还包括以下步骤:
当下单行为请求序列号大于限流阈值时,向客户端发送下单失败信息。
可以理解的是,当下单行为请求序列号大于限流阈值时,表示用户的下单行为请求不被允许,则向客户端发送下单失败信息。
本申请实施例提供了一种数据处理方法,通过设置限流阈值,可以控制系统能够处理的最大并发请求数量,避免系统因过载而出现异常情况。当用户的下单行为请求序列号大于限流阈值时,系统可以及时向客户端发送下单失败信息,告知用户当前系统繁忙或请求已达到上限,建议稍后再试。这样可以避免用户长时间等待或重复提交请求,提高用户的使用体验和满意度。同时,限流也可以保护系统资源,避免因恶意攻击或异常情况导致系统崩溃或数据丢失。
为了便于理解,下面将结合图9至图12介绍一种应用于热点直播间的数据处理方法。图9是本申请数据处理系统的结构图。数据处理系统包括四个模块:热点发现服务、ETCD(etcd Distributed Key-Value Store,分布式键值存储系统)、库存服务及应用网关服务。具体的:
(一)热点发现服务:用于根据直播间的互动数据确定目标直播间(热点直播间)。具体的,可以根据直播间上班人数计算其是否为热点直播间,通过对单位时间的直播间人数的进行统计,当单位时间的直播间人数超过1000人,且每秒增长率大于200%时,将直播间标记为目标直播间。
热点发现服务还用于计算目标对象(热点商品)的限流阈值。具体的,根据服务器缓存空间中目标对象的库存数据及服务器缓存空间的性能信息,计算目标对象对应的限流阈值。限流阈值为根据目标对象在开启销售之前的库存数据(可售库存)计算的得到。优选的,可以通过以下公式表示:
限流阈值=Min(2×(可售库存÷支付转化率),redis集群单分片最大qps÷2);
其中,一般支付转化率为90%至95%,redis集群单分片最大qps是指单个redis分片(shard)中每秒可以处理的最大查询次数,通常为8W-10W。
(二)ETCD(etcd Distributed Key-Value Store,分布式键值存储系统)主要用作分布式配置中心,负责存储两部分数据:
1、限流阈值。根据目标对象SKU的可售库存计算限流阈值后,将限流阈值更新到规则中,用于后续的限流判断。规则由限流key(标识符)和value(限流阈值)组成,限流key={uri}:{roomId}:{skuId},roomId为直播间的唯一的标识信息,skuid为商品的唯一的标识信息,uri为接口的uri,主要包括非下单阶段的库存数据查询接口,例如:basic/stock/query,以及下单请求阶段的库存查询接口,例如:trade/stock/query。
2、目标对象的SKU售罄列表。目标对象的SKU售罄列表存储售罄的目标对象的SKU标识信息(SKUID),当目标对象售罄时将售罄目标对象的SKUID写入该目标对象的SKU售罄列表,用于后续的库存售罄提前在网关进行拦截返回。
(三)库存服务:库存服务主要用于SKU库存数据的查询和扣减,分别提供非下单阶段的库存数据查询请求(如结算、商详);以及下单请求阶段的库存查询扣减。
(四)应用网关服务:应用网关服务主要存储2部分数据,并根据数据进行业务判断:
第一部分是ETCD中的限流特征列表;
第二部分是ETCD中的SKU售罄列表;在接受到请求后,检测请求中的SKU是否在本地缓存空间为售罄状态,如果存在,则直接返回不可售;否则,继续检测是否触发限流阈值;如果触发则针对不同接口进行不同的限流措施。
请参阅图10至图12,图10至图12为应用于热点直播间的数据处理方法的流程图。数据处理方法包括三个阶段:热点库存发现和限流阈值初始化阶段、库存查询阶段及下单查询并冻结/扣减库存阶段。具体的:
请参阅图10,热点库存发现和限流阈值初始化阶段包括步骤S1:直播间上报在线人数到热点发现服务,热点发现服务通过直播间各时间段在线人数判断是否热点直播间(目标直播间),如果时热点直播间,则遍历当前直播间内所有商品(目标对象),并查询所有商品SKU的可售库存,计算每个商品SKU的限流阈值,并更新到ETCD,应用网关接收到ETCD特征限流变更后,拉取特征限流数据到应用网关本地进行缓存。
请参阅图11,库存查询阶段包括步骤S2至S5。
S2、应用网关接收库存数据查询请求,解析库存数据查询请求的内容,库存数据查询请求携带目标对象的标识信息,根据目标对象的标识信息,查询本地缓存空间中目标对象的状态信息,如果目标对象的状态信息为指示目标对象为不可下单的状态(售罄状态),则返回目标对象SKU库存已售罄,结束流程。如果目标对象的状态信息为指示目标对象为可下单的状态(非售罄状态),则执行S3。
S3、查询库存数据查询请求对应的查询请求序列号是否大于目标对象的限流阈值,如果库存数据查询请求对应的查询请求序列号大于目标对象的限流阈值,则返回商品库存可售,向客户端发送目标对象的状态信息为可下单的状态,结束流程。如果库存数据查询请求对应的查询请求序列号小于等于目标对象的限流阈值,则执行S4。
S4、应用网关调用库存服务,查询目标对象的SKU库存数量,然后执行S5。
S5、查询到目标对象的SKU库存后,判断目标对象SKU库存是否已经售罄,如果是,库存服务更新ETCD库存售罄列表,并返回目标对象的状态信息为不可下单状态;如果未售罄,则返回目标对象的状态信息为可下单状态;结束流程。
请参阅图12,下单查询并冻结/扣减库存阶段包括步骤S6至S8。
S6、应用网关接收下单行为请求,解析下单行为请求,下单行为请求携带目标对象的标识信息,根据目标对象的标识信息,查询本地缓存空间中目标对象的状态信息,如果目标对象的状态信息为指示目标对象为不可下单的状态(售罄状态),则返回下单行为请求失败,库存不足,结束流程。否则执行S7。
S7、查询下单行为请求对应的下单行为请求序列号是否大于目标对象的限流阈值,如果库存数据查询请求对应的查询请求序列号大于目标对象的限流阈值,则返回下单行为请求失败,库存不足,结束流程。如果不是,执行S8。
S8、请求库存服务冻结库存接口,库存服务查询并冻结、扣减库存;如果失败,则返回订单生成失败,库存不足;结束流程;如果成功,则发送扣减消息到kafka(分布式流处理平台),同时库存服务异步消费kafka消息,在DB中扣减库存并记录流水结束流程。
本申请实施例提供的应用于热点直播间的数据处理方法,适用于直播电商场景中,热点商品查询、下单的高并发场景;结合业务特征,利用尽可能少的硬件资源,在满足用户体验的前提下,提前发现热点商品,并保障热点直播间库存查询、扣减、下单等功能的正常运行。本实施例提供的方法结合业务场景,将热点商品在前置链路发现,同时用二级限流策略保证热点商品的库存查询和扣减:一级策略针对已售罄的商品,在网关层进行判断并降级返回售罄信息;二级策略针对SKU的限流,与库存数强相关,也提前在网关层就进行判断。通过直播间人数的波动提前发现热点数据,属于前置处理;而对于热点数据的发现,仅需要统计直播间人数并计算时间窗口内的波动人数就可以实现,不需要浪费额外的计算资源;同时,库存的相关接口做到SKU级别的特征限流,根据不同的SKUID指定不同的限流阈值,避免库存的查询、扣减接口限流范围过大。
本申请实施例提供的应用于热点直播间的数据处理方法,相比其他热点发现的复杂计算,简单统计直播间人数的变化完成前置热点商品的发现,同时,在资源尽可能少的情况下,通过计算热点商品的可售库存数量,根据每个热点商品的可售库存数量进行特征限流,既保障了这部分热点商品的购买,也通过限流的方式保证了系统的稳定性。
下面对本申请中的数据处理装置进行详细描述,请参阅图13。图13为本申请实施例中数据处理装置10的一个实施例示意图,数据处理装置10包括:
查询请求接收模块110,用于接收客户端发送的目标对象的库存数据查询请求,其中,库存数据查询请求携带目标对象的标识信息,库存数据查询请求对应于查询请求序列号,查询请求序列号表征对目标对象进行库存数据查询的请求次序;
状态信息获取模块120,用于根据目标对象的标识信息,获取本地缓存空间中目标对象的状态信息,
限流阈值获取模块130,用于当目标对象的状态信息为第一状态信息时,获取目标对象对应的限流阈值,其中,第一状态信息用于指示允许对目标对象执行下单行为,限流阈值为根据目标对象的库存数据计算得到的;
第一状态信息发送模块140,用于当查询请求序列号大于限流阈值时,向客户端发送目标对象的状态信息为第一状态信息;
下单行为请求接收模块150,用于接收客户端发送的目标对象的下单行为请求,其中,下单行为请求携带目标对象的标识信息,下单行为请求对应于下单行为请求序列号,下单行为请求序列号表征对目标对象进行下单行为的请求次序;
数据扣减模块160,用于当下单行为请求序列号小于等于限流阈值时,对目标对象的库存数据进行扣减;
下单成功信息发送模块170,用于当扣减成功时,向客户端发送下单成功信息。
本申请实施例提供了一种数据处理装置,通过限流阈值的引入,可以控制对目标对象的库存数据查询和下单行为请求的流量,避免高并发请求对系统造成的负载压力,解决了由于商品的流量突增造成的应用和中间件负载上升所导致的直播平台奔溃的问题;当查询请求序列号大于限流阈值时,向客户端发送目标对象的状态信息,以及时告知用户目标对象是否可供销售,避免无效的下单请求;接收客户端发送的目标对象的下单请求,并通过下单请求序列号和限流阈值控制下单行为的流量,避免过度并发的下单请求对系统造成的压力;当下单请求序列号小于等于限流阈值时,对目标对象的库存数据进行扣减,以确保系统能够处理有效的下单请求,并及时更新库存数据;当扣减成功时,向客户端发送下单成功信息,及时向用户反馈下单行为的结果,提供良好的用户体验。
在本申请的图13对应的实施例提供的数据处理装置的一个可选实施例中,下单行为请求携带下单行为对应的目标对象的指定数据;
数据扣减模块160,还用于:
获取服务器缓存空间中目标对象的库存数据;
当下单行为对应的目标对象的指定数据小于等于服务器缓存空间中目标对象的库存数据时,根据指定数据对服务器缓存空间中目标对象的库存数据进行扣减,且返回扣减成功信息。
根据下单行为对应的目标对象的指定数据,对服务器缓存空间中目标对象的库存数据中的全部库存数据或部分库存数据进行冻结。
本申请实施例提供了一种数据处理装置,保证了下单行为的有效性和准确性。通过先获取服务器缓存空间中目标对象的库存数据,再将其与下单行为对应的目标对象的指定数据进行比较,可以确保用户下单的数量不会超过目标对象的实际库存数量,从而避免了无效订单的生成。还提高了系统的可靠性和响应速度。由于服务器缓存空间中的库存数据是实时更新的,因此可以快速地响应用户的下单行为,提供准确的库存信息,并根据实际情况进行库存扣减。这样可以提高用户的购物体验,增强用户对系统的信任感。
在本申请的图13对应的实施例提供的数据处理装置的一个可选实施例中,数据处理装置还包括:下单失败信息发送模块,用于:
当下单行为对应的目标对象的指定数据大于服务器缓存空间中目标对象的库存数据时,返回扣减失败信息,并向客户端发送下单失败信息。
本申请实施例提供了一种数据处理装置,确保了订单的有效性和准确性。通过将下单行为对应的目标对象的指定数据与服务器缓存空间中目标对象的库存数据进行比较,可以避免用户下单数量超过实际库存数量的情况,从而避免了无效订单的生成。这一步骤还提高了系统的可靠性和响应速度。由于服务器缓存空间中的库存数据是实时更新的,因此可以快速地响应用户的下单行为,提供准确的库存信息,并根据实际情况进行库存扣减。这样可以提高用户的购物体验,增强用户对系统的信任感。
在本申请的图13对应的实施例提供的数据处理装置的一个可选实施例中,数据处理装置还包括:
库存数据获取模块,用于当查询请求序列号小于等于限流阈值时,获取服务器缓存空间中目标对象的库存数据;
库存数据信息发送模块,用于当库存数据大于库存数据阈值时,向客户端发送目标对象的库存数据信息,其中,库存数据信息为根据库存数据生成的;
第二状态信息发送模块,用于当库存数据小于等于库存数据阈值时,则向客户端发送目标对象的状态信息为第二状态信息,其中,第二状态信息用于指示不允许对目标对象执行下单行为。
状态信息更新模块,用于将本地缓存空间中目标对象的状态信息更新为第二状态信息。
本申请实施例提供了一种数据处理装置,实现了对查询请求的快速响应和处理。通过设置限流阈值,可以控制并发查询请求的数量,避免大量请求同时访问服务器导致系统崩溃或性能下降。当查询请求序列号小于等于限流阈值时,可以直接从服务器缓存空间中获取目标对象的库存数据,提高了查询的实时性和准确性。当库存数据大于库存数据阈值时,向客户端发送目标对象的库存数据信息,使得客户端能够及时获取到目标对象的实时库存情况,以便用户进行下单决策。当库存数据小于等于库存数据阈值时,向客户端发送目标对象的状态信息为第二状态信息,以告知用户目标对象为售罄或者不可售状态。这有助于避免用户进行无效的下单操作,提高用户的购物体验。此外,将本地缓存空间中目标对象的状态信息更新为第二状态信息,确保了本地缓存空间中目标对象的状态信息与服务器缓存空间中目标对象的状态信息一致,避免了因状态不一致而导致的错误或冲突。这样可以提高系统的一致性和可靠性,使用户能够获得准确的信息。
在本申请的图13对应的实施例提供的数据处理装置的一个可选实施例中,数据处理装置还包括:
互动数据获取模块,用于获取直播间的互动数据;
目标直播间确定模块,用于当互动数据满足互动数据阈值时,将直播间标记为目标直播间;
目标对象标记模块,用于将目标直播间中的对象标记为目标对象。
本申请某一实施例提供的装置,根据直播间的互动数据确定目标直播间(热点直播间),对于热点直播间内售卖的对象(商品)标记为目标对象(热点商品),进而为后续的针对目标对象做缓存预热、流量控制奠定基础。
在本申请的图13对应的实施例提供的数据处理装置的一个可选实施例中,数据处理装置还包括限流阈值计算模块,用于:
获取服务器缓存空间中目标对象的库存数据及服务器缓存空间的性能信息;
根据服务器缓存空间中目标对象的库存数据及服务器缓存空间的性能信息,计算目标对象对应的限流阈值。
本申请实施例提供了一种数据处理装置,通过计算目标对象的限流阈值,可以控制对目标对象的库存数据查询和下单行为请求的流量,避免高并发请求对系统造成的负载压力,解决了由于商品的流量突增造成的应用和中间件负载上升所导致的直播平台奔溃的问题。
在本申请的图13对应的实施例提供的数据处理装置的一个可选实施例中,数据处理装置还包括状态信息更新模块,用于根据限流阈值及目标对象的库存数据,对本地缓存空间中目标对象的状态信息进行更新。
本申请实施例提供了一种数据处理装置,将目标对象的状态信息存储于本地缓存空间有益于在高并发访问的情况下快速获取到目标对象的状态信息,减少用户的等待时间,提高用户体验。
在本申请的图13对应的实施例提供的数据处理装置的一个可选实施例中,数据处理装置还包括查询请求序列号设定模块,用于:
根据目标对象对应的标识信息,获取目标对象对应的历史库存数据查询请求的数量;
根据目标对象对应的历史库存数据查询请求的数量,为库存数据查询请求设定查询请求序列号。
本申请实施例提供了一种数据处理装置,为库存数据查询请求设定查询请求序列号,以便对查询请求进行排序和处理,提高查询效率和准确性。具体来说,根据目标对象对应的历史库存数据查询请求的数量来设定查询请求序列号,可以对不同目标对象的查询请求进行区分和排序,避免重复查询和冲突。同时,通过为每个查询请求配置唯一的序列号,可以方便地获取和管理查询请求的状态和结果,提高查询系统的可靠性和稳定性。
在本申请的图13对应的实施例提供的数据处理装置的一个可选实施例中,数据处理装置还包括第二状态信息发送模块,还用于当目标对象的状态信息为第二状态信息时,向客户端发送目标对象的状态信息为第二状态信息,其中,第二状态信息用于指示不允许对目标对象执行下单行为。
本申请实施例提供了一种数据处理装置,将目标对象的状态信息存储于本地缓存空间有益于在高并发访问的情况下快速获取到目标对象的状态信息,减少用户的等待时间,提高用户体验。
在本申请的图13对应的实施例提供的数据处理装置的一个可选实施例中,下单行为请求失败信息发送模块,还用于:当下单行为请求序列号大于限流阈值时,向客户端发送下单行为请求失败信息。
本申请实施例提供了一种数据处理装置,通过设置限流阈值,可以控制系统能够处理的最大并发请求数量,避免系统因过载而出现异常情况。当用户的下单行为请求序列号大于限流阈值时,系统可以及时向客户端发送下单失败信息,告知用户当前系统繁忙或请求已达到上限,建议稍后再试。这样可以避免用户长时间等待或重复提交请求,提高用户的使用体验和满意度。同时,限流也可以保护系统资源,避免因恶意攻击或异常情况导致系统崩溃或数据丢失。
图14是本申请实施例提供的一种服务器结构示意图,该服务器300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在服务器300上执行存储介质330中的一系列指令操作。
服务器300还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如Windows Server
上述实施例中由服务器所执行的步骤可以基于该图14所示的服务器结构。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
- 一种泌尿科结石检查用多功能检查床
- 一种外科检查用多功能检查床