竞拍数据的处理方法及系统.pdf

上传人:Y94****206 文档编号:6164080 上传时间:2019-05-15 格式:PDF 页数:14 大小:2.31MB
返回 下载 相关 举报
摘要
申请专利号:

CN201210494780.0

申请日:

2012.11.28

公开号:

CN103854214A

公开日:

2014.06.11

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06Q 30/06申请日:20121128|||公开

IPC分类号:

G06Q30/06(2012.01)I

主分类号:

G06Q30/06

申请人:

阿里巴巴集团控股有限公司

发明人:

谢中富; 刘志勇

地址:

英属开曼群岛大开曼资本大厦一座四层847号邮箱

优先权:

专利代理机构:

北京安信方达知识产权代理有限公司 11262

代理人:

栗若木

PDF下载: PDF下载
内容摘要

本发明公开了一种竞拍数据的处理方法及系统,减少计算量,提高处理速度。所述处理方法包括:接收竞拍请求,从所述竞拍请求中获取竞拍数据;获取所述竞拍数据后,在内存中同步缓存所述竞拍数据,根据所述竞拍数据更新统计数据;批量读取竞拍数据,进行结算,将结算后的竞拍数据持久化到数据库中。所述处理系统包括:网络应用模块、内存缓存应用模块和异步结算模块。本申请的竞拍数据处理系统和方法不但不需要复杂的业务逻辑计算,而且处理速度快,并且利用内存实时地更新竞拍过程中的统计数据,很大程度上发挥了计算机在竞拍数据处理系统中的处理能力。

权利要求书

权利要求书
1.  一种竞拍数据的处理系统,其特征在于,包括:网络应用模块、内存缓存应用模块和异步结算模块,其中:
所述网络应用模块,用于接收竞拍请求,从中获取竞拍数据;
所述内存缓存应用模块,用于在所述网络应用模块获取竞拍数据后,在内存中同步缓存所述竞拍数据,根据所述竞拍数据更新统计数据;
所述异步结算模块,用于批量读取竞拍数据,进行结算,将结算后的竞拍数据持久化到数据库中。

2.  如权利要求1所述的系统,其特征在于:
所述网络应用模块包括竞拍请求接收单元和第一内存调用单元,其中:
所述竞拍请求接收单元,用于接收竞拍请求,从竞拍请求中获取竞拍数据;
所述第一内存调用单元,用于调用内存缓存应用模块在内存中同步缓存所述竞拍数据。

3.  如权利要求2所述的系统,其特征在于:
所述网络应用模块还包括逻辑校验单元,其用于对竞拍请求进行逻辑校验,包括以下校验中的一种或多种:竞拍价格是否高于统计数据中的当前最高价、竞拍时间是否在竞拍期内、用户账户余额是否足够。

4.  如权利要求2所述的系统,其特征在于:
所述网络应用模块还包括展示单元,其用于展示统计数据的部分或全部内容。

5.  如权利要求1所述的系统,其特征在于:
所述内存缓存应用模块包括竞拍数据缓存单元和统计数据更新单元,其中:
所述竞拍数据缓存单元,用于在内存中缓存所述网络应用模块获取的竞 拍数据;
所述统计数据更新单元,用于根据所述竞拍数据更新统计数据。

6.  如权利要求1所述的系统,其特征在于:
所述异步结算模块包括竞拍数据读取单元、结算单元和持久化单元,其中:
所述竞拍数据读取单元,用于从内存中批量读取未结算的竞拍数据;
所述结算单元,用于根据所述竞拍数据读取单元读取的竞拍数据进行结算;
所述持久化单元,用于将结算后的竞拍数据持久化到数据库中。

7.  如权利要求6所述的系统,其特征在于:
所述结算单元根据所述竞拍数据读取单元读取的竞拍数据进行结算,包括:所述结算单元在所述竞拍数据读取单元批量读取的当前批次的竞拍数据中,针对一竞拍商品,确定所述竞拍商品的当前最高价,冻结所述当前最高价对应的用户的账户金额,解冻上一次结算时所述竞拍商品的最高价对应的用户的账户金额。

8.  如权利要求6所述的系统,其特征在于:
所述异步结算模块还包括第二内存调用单元,其用于调用内存缓存应用模块删除结算后的竞拍数据。

9.  如权利要求1所述的系统,其特征在于:
所述竞拍数据包括以下内容:用户标识、竞拍的商品标识、竞拍价格、竞拍时间;
所述统计数据包括以下内容:出价次数、当前最高价、竞拍记录。

10.  一种竞拍数据的处理方法,其特征在于,包括:
接收竞拍请求,从所述竞拍请求中获取竞拍数据;
获取所述竞拍数据后,在内存中同步缓存所述竞拍数据,根据所述竞拍 数据更新统计数据;
批量读取竞拍数据,进行结算,将结算后的竞拍数据持久化到数据库中。

11.  如权利要求10所述的方法,其特征在于:
在所述接收竞拍请求后,所述方法还包括:对竞拍请求进行逻辑校验,所述逻辑校验包括以下校验中的一种或多种:竞拍价格是否高于统计数据中的当前最高价、竞拍时间是否在竞拍期内、用户账户余额是否足够。

12.  如权利要求10所述的方法,其特征在于:
在所述更新统计数据后,所述方法还包括:展示所述统计数据的部分或全部内容。

13.  如权利要求10所述的方法,其特征在于:
所述批量读取竞拍数据,进行结算,将结算后的竞拍数据持久化到数据库中,包括:
从内存中批量读取未结算的竞拍数据;
根据读取的所述竞拍数据进行结算;
将结算后的竞拍数据持久化到数据库中。

14.  如权利要求13所述的方法,其特征在于:
所述根据读取的所述竞拍数据进行结算包括:在批量读取的当前批次的竞拍数据中,针对一竞拍商品,确定所述竞拍商品的当前最高价,冻结所述当前最高价对应的用户的账户金额,解冻上一次结算时所述竞拍商品的最高价对应的用户的账户金额。

15.  如权利要求13所述的方法,其特征在于:
在所述根据读取的所述竞拍数据进行结算后,所述方法还包括:删除内存中结算后的竞拍数据。

16.  如权利要求10所述的方法,其特征在于:
所述竞拍数据包括以下内容:用户标识、竞拍的商品标识、竞拍价格、 竞拍时间;
所述统计数据包括以下内容:出价次数、当前最高价、竞拍记录。

说明书

说明书竞拍数据的处理方法及系统
技术领域
本发明涉及网络竞拍领域,具体涉及一种竞拍数据的处理方法及系统。
背景技术
随着电子商务的蓬勃发展,越来越多的商业活动利用计算机技术,可以在线举办。如热门商品的在线拍卖会,针对很多个热门商品,成千上万个用户高并发(并发是指一个时间段内,系统同时处理多个相同的服务请求)的竞拍行为,每次竞拍行为可能伴随着复杂的业务逻辑计算,同时还需要支持高并发的查询请求,如每个竞拍商品的竞拍次数、当前价格等。
现有竞拍系统根据竞拍的业务流程,强依赖传统的关系型数据库存储用户竞拍数据,同步逐个地计算各个业务节点,实时地把竞拍数据保存在关系数据库中,并提供查询和统计功能,如查询某件商品的当前最高价、竞拍次数。
上述现有系统的缺点是:
1、一个竞拍行为依赖了很多业务处理逻辑,如记录竞拍数据、计算当前的最高价、解冻已经被超越的账户金额、冻结最高出价的账户金额等。这些复杂的业务逻辑需要大量的计算量,有些计算还需依赖于外部系统提供的服务。这些过程会使得页面上的一个竞拍请求需要很长的响应时间,从而降低整个系统的QPS(Query Per Second,每秒查询率,QPS反应了一个特定的系统在一秒钟内所处理的请求量)。面对在线高并发的竞拍行为,如果QPS达不到要求,会导致严重的性能问题,使得系统处于瘫痪状态。
2、实时地记录用户的竞拍数据,需要依赖系统高性能的写能力,一般竞拍系统的设计是写入数据库或磁盘,但无论数据库还是磁盘,高并发的竞拍系统,都需要依赖高端磁盘提供高性能的IOPS(Input/Output Operations Per  Second,每秒进行读写(I/O)操作的次数)。
3、竞拍系统还需要提供实时的统计功能,如一件商品的竞拍次数、当前最高价等,现有一些竞拍系统的设计只是存储原始的竞拍数据,针对每次统计数据的请求需要实时地计算,这样产生了大量重复地计算,严重地浪费了计算机的资源、从而降低了在同等硬件条件下的服务性能。
如何设计一个系统支撑在线大量用户高并发竞拍活动,同时如何最大限度地发挥计算机资源,称为亟待解决的问题。
发明内容
本发明所要解决的技术问题是提供一种竞拍数据的处理方法及系统,减少计算量,提高处理速度。
为解决上述技术问题,本发明提供了一种竞拍数据的处理系统,其特征在于,包括:网络应用模块、内存缓存应用模块和异步结算模块,其中:
所述网络应用模块,用于接收竞拍请求,从中获取竞拍数据;
所述内存缓存应用模块,用于在所述网络应用模块获取竞拍数据后,在内存中同步缓存所述竞拍数据,根据所述竞拍数据更新统计数据;
所述异步结算模块,用于批量读取竞拍数据,进行结算,将结算后的竞拍数据持久化到数据库中。
进一步地,所述网络应用模块包括竞拍请求接收单元和第一内存调用单元,其中:
所述竞拍请求接收单元,用于接收竞拍请求,从竞拍请求中获取竞拍数据;
所述第一内存调用单元,用于调用内存缓存应用模块在内存中同步缓存所述竞拍数据。
进一步地,所述网络应用模块还包括逻辑校验单元,其用于对竞拍请求进行逻辑校验,包括以下校验中的一种或多种:竞拍价格是否高于统计数据 中的当前最高价、竞拍时间是否在竞拍期内、用户账户余额是否足够。
进一步地,所述网络应用模块还包括展示单元,其用于展示统计数据的部分或全部内容。
进一步地,所述内存缓存应用模块包括竞拍数据缓存单元和统计数据更新单元,其中:
所述竞拍数据缓存单元,用于在内存中缓存所述网络应用模块获取的竞拍数据;
所述统计数据更新单元,用于根据所述竞拍数据更新统计数据。
进一步地,所述异步结算模块包括竞拍数据读取单元、结算单元和持久化单元,其中:
所述竞拍数据读取单元,用于从内存中批量读取未结算的竞拍数据;
所述结算单元,用于根据所述竞拍数据读取单元读取的竞拍数据进行结算;
所述持久化单元,用于将结算后的竞拍数据持久化到数据库中。
进一步地,所述结算单元根据所述竞拍数据读取单元读取的竞拍数据进行结算,包括:所述结算单元在所述竞拍数据读取单元批量读取的当前批次的竞拍数据中,针对一竞拍商品,确定所述竞拍商品的当前最高价,冻结所述当前最高价对应的用户的账户金额,解冻上一次结算时所述竞拍商品的最高价对应的用户的账户金额。
进一步地,所述异步结算模块还包括第二内存调用单元,其用于调用内存缓存应用模块删除结算后的竞拍数据。
进一步地,所述竞拍数据包括以下内容:用户标识、竞拍的商品标识、竞拍价格、竞拍时间;所述统计数据包括以下内容:出价次数、当前最高价、竞拍记录。
为解决上述技术问题,本发明还提供了一种竞拍数据的处理方法,其特 征在于,包括:
接收竞拍请求,从所述竞拍请求中获取竞拍数据;
获取所述竞拍数据后,在内存中同步缓存所述竞拍数据,根据所述竞拍数据更新统计数据;
批量读取竞拍数据,进行结算,将结算后的竞拍数据持久化到数据库中。
进一步地,在所述接收竞拍请求后,所述方法还包括:对竞拍请求进行逻辑校验,所述逻辑校验包括以下校验中的一种或多种:竞拍价格是否高于统计数据中的当前最高价、竞拍时间是否在竞拍期内、用户账户余额是否足够。
进一步地,在所述更新统计数据后,所述方法还包括:展示所述统计数据的部分或全部内容。
进一步地,所述批量读取竞拍数据,进行结算,将结算后的竞拍数据持久化到数据库中,包括:从内存中批量读取未结算的竞拍数据;根据读取的所述竞拍数据进行结算;将结算后的竞拍数据持久化到数据库中。
进一步地,所述根据读取的所述竞拍数据进行结算包括:在批量读取的当前批次的竞拍数据中,针对一竞拍商品,确定所述竞拍商品的当前最高价,冻结所述当前最高价对应的用户的账户金额,解冻上一次结算时所述竞拍商品的最高价对应的用户的账户金额。
进一步地,在所述根据读取的所述竞拍数据进行结算后,所述方法还包括:删除内存中结算后的竞拍数据。
进一步地,所述竞拍数据包括以下内容:用户标识、竞拍的商品标识、竞拍价格、竞拍时间;所述统计数据包括以下内容:出价次数、当前最高价、竞拍记录。
针对现有技术方案的缺点,本申请采用先同步把竞拍数据写入内存中,实时计算统计数据,并存储在内存中,然后在系统后台通过独立的线程,异步的按商品合并竞拍数据后对用户的竞拍行为进行结算,并持久化在数据库 中。采用本申请的设计,使得每一次竞拍行为带来的计算量很小,对内存也只有几次写的操作,而且内存的读写性能远远超过磁盘的读写性能,一般是磁盘的几百至上千倍,因此利用内存的高效读写能力记录竞拍的数据,在关键的高并发场景中不强依赖于数据库的性能好坏,充分发挥了内存快速读写的能力。并且利用内存实时地更新竞拍过程中的统计数据,很大程度上发挥了计算机在竞拍数据处理系统中的处理能力。本申请的竞拍数据处理系统和方法不但不需要复杂的业务逻辑计算,而且处理速度快。
附图说明
图1为实施例1竞拍数据处理系统整体结构示意图;
图2为实施例1中网络应用模块10结构示意图;
图3为实施例1中内存缓存应用模块20结构示意图;
图4为实施例1中异步结算模块30结构示意图;
图5为实施例2竞拍数据的处理方法流程图;
图6为实施例2中步骤501和502的一种优选方式流程图;
图7为实施例2中步骤503的一种优选方式流程图;
图8为应用示例1竞拍详情页面图。
具体实施方式
对于现有竞拍系统,如果要提高系统的QPS,需要花费很高的硬件成本,而且依赖于外部的系统也要做相应的软、硬件升级。为了以较低的成本提高竞拍系统的QPS、写能力以及计算能力,本申请设计了一种新的竞拍数据处理方法和系统。
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
实施例1
本实施例的竞拍数据处理系统如图1所示,包括网络应用模块10、内存缓存应用模块20和异步结算模块30,其中:
该网络应用模块10,用于接收竞拍请求,从中获取竞拍数据;
该内存缓存应用模块20,用于在网络应用模块获取竞拍数据后,在内存中同步缓存该竞拍数据,并根据竞拍数据更新统计数据;
该异步结算模块30,用于批量读取竞拍数据进行结算,将结算后的竞拍数据持久化到数据库中。
由于内存的读写速度高于数据库和磁盘,因此通过内存缓存竞拍数据,可以缩短竞拍请求的响应时间。且通过内存实时更新统计数据,一方面避免重复计算,另一方面也方便查询。对竞拍数据的结算,是与竞拍行为异步进行的,由单独的异步结算模块执行,不影响统计数据的更新以及系统的QPS,另外,批量处理可显著提高处理速度。
为使本领域技术人员更好的理解本发明,下面对上述各模块进行具体介绍。在介绍之前,先对上例中涉及的一些概念进行举例说明。竞拍请求中包括竞拍数据,竞拍数据包括以下内容:用户标识(ID)、竞拍的商品标识、竞拍价格、竞拍时间。统计数据是针对商品的,包括以下内容:竞拍次数、当前最高价、竞拍记录,其中竞拍记录包含了用户的每次竞拍行为,每次竞拍行为通过竞拍数据来体现,也就是说,竞拍记录包括了从竞拍开始到竞拍期满这期间内的所有竞拍数据。以上关于竞拍数据以及统计数据的内容仅为一种优选实施方式的举例,在其他实施例中,可以在此例基础上进行增减。
首先对网络应用模块10进行说明如下:
网络应用模块10主要负责竞拍页面的展示,与用户的竞拍行为进行交互,以及获取竞拍数据。
一种优选的实施方式是,该网络应用模块10在接收到竞拍请求后,还用于对竞拍请求进行逻辑校验,例如执行以下判断中的一种或多种:竞拍价格是否高于内存存储的统计数据中的当前最高价、竞拍时间是否在竞拍期内、 用户账户余额是否足够。在逻辑校验成功后,再调用内存缓存应用模块20提供的服务,将此次竞拍行为的竞拍数据同步缓存到内存中。此处所列举逻辑校验的内容仅为举例说明,在实际系统中,可根据需要进行设计。
另一种优选的实施方式是,网络应用模块10在每接收到竞拍请求后,展示内存缓存应用模块20在内存中更新的该商品的统计数据的部分内容或者全部内容,例如展示当前最高价,以方便其他用户进行竞拍。此处所述展示是指向客户端提供展示内容(可以主动发送,也可待收到请求后发送),如果服务器端需要显示,网络应用模块10也可实现服务器端的统计数据显示。
结合上述优选实施方式,网络应用模块10可以包括竞拍请求接收单元101,逻辑校验单元102,内存调用单元103以及展示单元104,如图2所示(图中所示虚线框表示可选),其中:
竞拍请求接收单元101,用于接收竞拍请求,从竞拍请求中获取竞拍数据;
逻辑校验单元102,用于对竞拍请求进行逻辑校验;
内存调用单元103,用于调用内存缓存应用模块20在内存中同步缓存竞拍数据;具体地,该内存调用单元103可采用命令调用的方式调用内存缓存应用模块20同步缓存竞拍数据,和/或,采用下发命令的方式使内存缓存应用模块20更新统计数据;例如内存调用单元103调用内存缓存应用模块20同步缓存竞拍数据后,内存缓存应用模块20自行根据缓存的竞拍数据更新统计数据;
展示单元104,用于展示统计数据的部分内容或全部内容(包括在服务器端展示,以及向客户端提供展示数据)。
下面对该内存缓存应用模块20进行说明如下:
如图3所示,可将该内存缓存应用模块20划分为两个单元:竞拍数据缓存单元201和统计数据更新单元202,其中:
竞拍数据缓存单元201,用于在内存中缓存网络应用模块10获取的竞拍 数据;
统计数据更新单元202,用于根据竞拍数据更新统计数据。
对于统计数据更新单元202,其可以根据网络应用模块10发送的命令更新统计数据,例如统计数据更新单元202根据所述命令将当前商品的竞拍次数加1,以及根据竞拍数据更新内存中的当前商品的最高出价等。统计数据更新单元202也可以不依赖于网络应用模块10发送的命令,而设计为根据缓存的竞拍数据自行更新统计数据。例如,对于同一个商品,竞拍数据缓存单元201每缓存一次竞拍数据,统计数据更新单元202将对应商品的竞拍次数加1,同时将该商品当前最高价更新为该竞拍数据中的竞拍价格,并将该竞拍数据作为竞拍记录保存。
下面对该异步结算模块30进行说明如下:
如图4所示,该异步结算模块30包括竞拍数据读取单元301、结算单元302、持久化单元303,其中:
竞拍数据读取单元301,用于从内存中批量读取未结算的竞拍数据;
结算单元302,用于根据竞拍数据读取单元301读取的竞拍数据进行结算,结算过程包括:结算单元302在竞拍数据读取单元301批量读取的当前批次的竞拍数据中,针对一竞拍商品,确定该竞拍商品的当前最高价,冻结该当前最高价对应的用户的账户金额,解冻上一次结算时该竞拍商品的最高价对应的用户的账户金额;
持久化单元303,用于将结算后的竞拍数据持久化到数据库中。结算后的竞拍数据包括竞拍数据读取单元301当前批量读取的竞拍数据。所谓持久化到数据库中是指将内存中的数据写入数据库。
本申请中所述数据库可以是任何通用的关系型数据库,只要能够提供数据保存和查询的功能即可。
一种优选的实施方式是,该异步结算模块30还可包括一内存调用单元304,用于调用内存缓存应用模块20删除结算后的竞拍数据。
异步结算模块30会不断地循环读数据、结算、持久化这个过程。本例中竞拍数据处理系统关键数据(指与竞拍相关的数据,包括竞拍数据和统计数据)的存取没有直接依赖数据库,所以对数据库的性能没有特别地要求,节省了系统部署时在数据库软硬件方面的开销。
上述各模块、单元可以由软件实现,或由硬件实现,或者由软件和硬件两者的结合来实现。如果由软件实现,网络应用模块和异步结算模块可用Java实现,在Linux系统上运行能达到最佳的实施效果。内存缓存应用模块可以用C++实现,在Linux系统上运行能达到的实施效果更佳。
实施例2
本实施例描述竞拍数据的处理方法,如图5所示,包括以下步骤:
步骤501,接收竞拍请求,从中获取竞拍数据;
步骤502,获取竞拍数据后,在内存中同步缓存该竞拍数据,并根据该竞拍数据更新统计数据;
步骤503,批量读取竞拍数据,进行结算,将结算后的竞拍数据持久化到数据库中。
一种优选的实施方式是,在接收到竞拍请求后,先对竞拍请求进行逻辑校验,校验通过后再在内存中同步缓存竞拍数据,否则结束流程或者报错。对逻辑校验的说明参见实施例1。
另一种优选的实施方式是,在更新统计数据后,展示更新后的统计数据的部分内容或全部内容。
结合上述优选实施方式,步骤501和步骤502的执行过程如图6所示,包括步骤601-604,其中步骤603是对内存的操作:
步骤601,接收竞拍请求,从竞拍请求中获取竞拍数据;
步骤602,判断逻辑校验是否通过,如果通过,转步骤603,否则,结束;
逻辑校验包括以下判断中的一种或多种:竞拍价格是否高于内存存储的统计数据中的当前最高价、竞拍时间是否在竞拍期内、用户账户余额是否足够。即满足以下条件任意一条或多条,则认为逻辑校验通过:竞拍价格高于内存存储的统计数据中的当前最高价、竞拍时间在竞拍期内、用户账户余额足够。
步骤603,在内存中同步缓存竞拍数据,并根据竞拍数据更新统计数据;
步骤604,展示更新后的统计数据的部分内容或全部内容。
如图7所示,上述步骤503具体包括以下步骤:
步骤5031,从内存中批量读取未结算的竞拍数据;
步骤5032,根据读取的竞拍数据进行结算;
结算过程包括:对于一件竞拍商品,在批量读取的当前批次的竞拍数据中,确定该竞拍商品的当前最高价,冻结当前最高价对应的用户的账户金额,解冻上一次结算时该竞拍商品的最高价对应的用户的账户金额;
具体执行时,可以包括以下步骤:
步骤a,先按照商品标识对当前批次所有未结算竞拍数据进行分类,商品标识相同的竞拍数据属于同一类;
步骤b,对每一类竞拍数据按照竞拍价格进行排序,得到竞拍价格最高的一组竞拍数据;
排序仅是得到最高竞拍价的一种手段,在其他实施例中,也可以采用其他方式获得竞拍价格最高的一组竞拍数据。
步骤c,冻结该组竞拍数据中的用户标识对应的账户中的金额,并更新该用户标识对应的账户中的金额,冻结的金额至少等于该用户的竞拍价格,冻结后该用户标识对应账户中的余额为冻结前的余额与冻结的金额的差值;
优选地,可以向单独用于管理账户的数据库中增加一条该账户的冻结记录。
步骤d,解冻上一次结算时该商品标识的最高竞拍价格对应的用户的账户金额,并更新该用户的账户余额,解冻后该用户账户中的余额为解冻前的余额与解冻的金额的和值,其中解冻的金额应等于上次冻结的金额。
如果曾经在管理账户的数据库中记录了该账户的冻结记录,则此时可删除该账户的冻结记录。系统可定期对这些账户金额的流转记录日志。
每次结算后商品及其最高价对应的竞拍数据可以保留在内存中,方便下次结算时调用,也可由一数据库保留,取决于结算系统。
上述步骤c和步骤d的执行顺序不限。
步骤5033,将结算后的竞拍数据持久化到数据库中。
由于只有最高的出价才是有意义的,故只对最高价对应的数据进行处理,其它的竞拍数据可以直接持久化到数据库。通过批量结算,而不必对每一个用户的竞拍请求都进行结算,可以大大提高处理速度。
其中步骤5031和步骤5033是对内存的操作。在竞拍开始后,上述步骤5031-5033循环执行,但如果5031中读取不到未结算的竞拍数据,则流程结束。
一种优选的实施方式是,在结算完成后删除内存中结算后的竞拍数据,本步骤可以在步骤5033之前执行,也可以在步骤5033之后执行,本步骤也是对内存的操作。
应用示例1
本示例以标王竞拍处理系统为例对展示的内容进行说明。
图8所示为客户端所见界面的一种示例。图中“关键词”为竞拍商品标识。图中展示的“当前价格”(即当前最高价)、“出价次数”、“竞拍记录”等统计信息都是从内存中获取后再展示给客户端的。在用户确定出价竞拍后,该用户标识、竞拍商品标识、竞拍价格、竞拍时间等竞拍数据将通过竞拍请求发送至服务器端(竞拍数据处理系统),由服务器端进行如上述实施例中所述的处理。每一次用户的出价行为都会触发竞拍数据处理系统更新 相应的统计数据。
应用示例2
本示例说明一种内存中数据结构设计,如表1所示。
表1缓存数据结构

表1中展示的是在内存中的一种数据结构设计,其中bid_list是以链表(List)的形式保存用户的每一次竞拍行为,内容包括但不限于:用户标识、商品标识、竞拍价格、竞拍时间等。用户的竞拍数据以追加地方式添加到链表的尾部。每次异步结算模块就从该链表头部读取未结算的数据进行结算后再删除这些数据。
表中,bidcnt_001保存的是一件商品的竞价次数,其中001代表商品标识,以商品的代码作为缓存的key,每一次发生对该商品的竞价行为,只需要取出这个key对应的值,加1后再写入内存中即可。top_price以hashmap(基于哈希表的Map接口实现的一种数据结构)形式的保存商品当前的最高价,如某人对001商品出了一个更高的价,此时top_price中001对应的值就会更新(例如由网络应用模块调用内存缓存应用模块的接口进行更新)。同理,如果需要统计其它的竞拍数据,都可以设计相应的数据结构在内存缓存应用中保存,并做实时更新。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用 一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

竞拍数据的处理方法及系统.pdf_第1页
第1页 / 共14页
竞拍数据的处理方法及系统.pdf_第2页
第2页 / 共14页
竞拍数据的处理方法及系统.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《竞拍数据的处理方法及系统.pdf》由会员分享,可在线阅读,更多相关《竞拍数据的处理方法及系统.pdf(14页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103854214 A (43)申请公布日 2014.06.11 CN 103854214 A (21)申请号 201210494780.0 (22)申请日 2012.11.28 G06Q 30/06(2012.01) (71)申请人 阿里巴巴集团控股有限公司 地址 英属开曼群岛大开曼资本大厦一座四 层 847 号邮箱 (72)发明人 谢中富 刘志勇 (74)专利代理机构 北京安信方达知识产权代理 有限公司 11262 代理人 栗若木 (54) 发明名称 竞拍数据的处理方法及系统 (57) 摘要 本发明公开了一种竞拍数据的处理方法及系 统, 减少计算量, 提高处理速度。

2、。所述处理方法包 括 : 接收竞拍请求, 从所述竞拍请求中获取竞拍 数据 ; 获取所述竞拍数据后, 在内存中同步缓存 所述竞拍数据, 根据所述竞拍数据更新统计数据 ; 批量读取竞拍数据, 进行结算, 将结算后的竞拍数 据持久化到数据库中。所述处理系统包括 : 网络 应用模块、 内存缓存应用模块和异步结算模块。 本申请的竞拍数据处理系统和方法不但不需要复 杂的业务逻辑计算, 而且处理速度快, 并且利用内 存实时地更新竞拍过程中的统计数据, 很大程度 上发挥了计算机在竞拍数据处理系统中的处理能 力。 (51)Int.Cl. 权利要求书 2 页 说明书 8 页 附图 3 页 (19)中华人民共和国国。

3、家知识产权局 (12)发明专利申请 权利要求书2页 说明书8页 附图3页 (10)申请公布号 CN 103854214 A CN 103854214 A 1/2 页 2 1. 一种竞拍数据的处理系统, 其特征在于, 包括 : 网络应用模块、 内存缓存应用模块和 异步结算模块, 其中 : 所述网络应用模块, 用于接收竞拍请求, 从中获取竞拍数据 ; 所述内存缓存应用模块, 用于在所述网络应用模块获取竞拍数据后, 在内存中同步缓 存所述竞拍数据, 根据所述竞拍数据更新统计数据 ; 所述异步结算模块, 用于批量读取竞拍数据, 进行结算, 将结算后的竞拍数据持久化到 数据库中。 2. 如权利要求 1 。

4、所述的系统, 其特征在于 : 所述网络应用模块包括竞拍请求接收单元和第一内存调用单元, 其中 : 所述竞拍请求接收单元, 用于接收竞拍请求, 从竞拍请求中获取竞拍数据 ; 所述第一内存调用单元, 用于调用内存缓存应用模块在内存中同步缓存所述竞拍数 据。 3. 如权利要求 2 所述的系统, 其特征在于 : 所述网络应用模块还包括逻辑校验单元, 其用于对竞拍请求进行逻辑校验, 包括以下 校验中的一种或多种 : 竞拍价格是否高于统计数据中的当前最高价、 竞拍时间是否在竞拍 期内、 用户账户余额是否足够。 4. 如权利要求 2 所述的系统, 其特征在于 : 所述网络应用模块还包括展示单元, 其用于展示。

5、统计数据的部分或全部内容。 5. 如权利要求 1 所述的系统, 其特征在于 : 所述内存缓存应用模块包括竞拍数据缓存单元和统计数据更新单元, 其中 : 所述竞拍数据缓存单元, 用于在内存中缓存所述网络应用模块获取的竞拍数据 ; 所述统计数据更新单元, 用于根据所述竞拍数据更新统计数据。 6. 如权利要求 1 所述的系统, 其特征在于 : 所述异步结算模块包括竞拍数据读取单元、 结算单元和持久化单元, 其中 : 所述竞拍数据读取单元, 用于从内存中批量读取未结算的竞拍数据 ; 所述结算单元, 用于根据所述竞拍数据读取单元读取的竞拍数据进行结算 ; 所述持久化单元, 用于将结算后的竞拍数据持久化到。

6、数据库中。 7. 如权利要求 6 所述的系统, 其特征在于 : 所述结算单元根据所述竞拍数据读取单元读取的竞拍数据进行结算, 包括 : 所述结算 单元在所述竞拍数据读取单元批量读取的当前批次的竞拍数据中, 针对一竞拍商品, 确定 所述竞拍商品的当前最高价, 冻结所述当前最高价对应的用户的账户金额, 解冻上一次结 算时所述竞拍商品的最高价对应的用户的账户金额。 8. 如权利要求 6 所述的系统, 其特征在于 : 所述异步结算模块还包括第二内存调用单元, 其用于调用内存缓存应用模块删除结算 后的竞拍数据。 9. 如权利要求 1 所述的系统, 其特征在于 : 所述竞拍数据包括以下内容 : 用户标识、。

7、 竞拍的商品标识、 竞拍价格、 竞拍时间 ; 所述统计数据包括以下内容 : 出价次数、 当前最高价、 竞拍记录。 10. 一种竞拍数据的处理方法, 其特征在于, 包括 : 权 利 要 求 书 CN 103854214 A 2 2/2 页 3 接收竞拍请求, 从所述竞拍请求中获取竞拍数据 ; 获取所述竞拍数据后, 在内存中同步缓存所述竞拍数据, 根据所述竞拍数据更新统计 数据 ; 批量读取竞拍数据, 进行结算, 将结算后的竞拍数据持久化到数据库中。 11. 如权利要求 10 所述的方法, 其特征在于 : 在所述接收竞拍请求后, 所述方法还包括 : 对竞拍请求进行逻辑校验, 所述逻辑校验包 括以下。

8、校验中的一种或多种 : 竞拍价格是否高于统计数据中的当前最高价、 竞拍时间是否 在竞拍期内、 用户账户余额是否足够。 12. 如权利要求 10 所述的方法, 其特征在于 : 在所述更新统计数据后, 所述方法还包括 : 展示所述统计数据的部分或全部内容。 13. 如权利要求 10 所述的方法, 其特征在于 : 所述批量读取竞拍数据, 进行结算, 将结算后的竞拍数据持久化到数据库中, 包括 : 从内存中批量读取未结算的竞拍数据 ; 根据读取的所述竞拍数据进行结算 ; 将结算后的竞拍数据持久化到数据库中。 14. 如权利要求 13 所述的方法, 其特征在于 : 所述根据读取的所述竞拍数据进行结算包括。

9、 : 在批量读取的当前批次的竞拍数据中, 针对一竞拍商品, 确定所述竞拍商品的当前最高价, 冻结所述当前最高价对应的用户的账 户金额, 解冻上一次结算时所述竞拍商品的最高价对应的用户的账户金额。 15. 如权利要求 13 所述的方法, 其特征在于 : 在所述根据读取的所述竞拍数据进行结算后, 所述方法还包括 : 删除内存中结算后的 竞拍数据。 16. 如权利要求 10 所述的方法, 其特征在于 : 所述竞拍数据包括以下内容 : 用户标识、 竞拍的商品标识、 竞拍价格、 竞拍时间 ; 所述统计数据包括以下内容 : 出价次数、 当前最高价、 竞拍记录。 权 利 要 求 书 CN 103854214。

10、 A 3 1/8 页 4 竞拍数据的处理方法及系统 技术领域 0001 本发明涉及网络竞拍领域, 具体涉及一种竞拍数据的处理方法及系统。 背景技术 0002 随着电子商务的蓬勃发展, 越来越多的商业活动利用计算机技术, 可以在线举办。 如热门商品的在线拍卖会, 针对很多个热门商品, 成千上万个用户高并发 (并发是指一个时 间段内, 系统同时处理多个相同的服务请求) 的竞拍行为, 每次竞拍行为可能伴随着复杂的 业务逻辑计算, 同时还需要支持高并发的查询请求, 如每个竞拍商品的竞拍次数、 当前价格 等。 0003 现有竞拍系统根据竞拍的业务流程, 强依赖传统的关系型数据库存储用户竞拍数 据, 同步。

11、逐个地计算各个业务节点, 实时地把竞拍数据保存在关系数据库中, 并提供查询和 统计功能, 如查询某件商品的当前最高价、 竞拍次数。 0004 上述现有系统的缺点是 : 0005 1、 一个竞拍行为依赖了很多业务处理逻辑, 如记录竞拍数据、 计算当前的最高价、 解冻已经被超越的账户金额、 冻结最高出价的账户金额等。这些复杂的业务逻辑需要大量 的计算量, 有些计算还需依赖于外部系统提供的服务。这些过程会使得页面上的一个竞拍 请求需要很长的响应时间, 从而降低整个系统的 QPS(Query Per Second, 每秒查询率, QPS 反应了一个特定的系统在一秒钟内所处理的请求量) 。面对在线高并发。

12、的竞拍行为, 如果 QPS 达不到要求, 会导致严重的性能问题, 使得系统处于瘫痪状态。 0006 2、 实时地记录用户的竞拍数据, 需要依赖系统高性能的写能力, 一般竞拍系统的 设计是写入数据库或磁盘, 但无论数据库还是磁盘, 高并发的竞拍系统, 都需要依赖高端磁 盘提供高性能的 IOPS(Input/Output Operations Per Second, 每秒进行读写 (I/O) 操作 的次数) 。 0007 3、 竞拍系统还需要提供实时的统计功能, 如一件商品的竞拍次数、 当前最高价等, 现有一些竞拍系统的设计只是存储原始的竞拍数据, 针对每次统计数据的请求需要实时地 计算, 这样产。

13、生了大量重复地计算, 严重地浪费了计算机的资源、 从而降低了在同等硬件条 件下的服务性能。 0008 如何设计一个系统支撑在线大量用户高并发竞拍活动, 同时如何最大限度地发挥 计算机资源, 称为亟待解决的问题。 发明内容 0009 本发明所要解决的技术问题是提供一种竞拍数据的处理方法及系统, 减少计算 量, 提高处理速度。 0010 为解决上述技术问题, 本发明提供了一种竞拍数据的处理系统, 其特征在于, 包 括 : 网络应用模块、 内存缓存应用模块和异步结算模块, 其中 : 0011 所述网络应用模块, 用于接收竞拍请求, 从中获取竞拍数据 ; 说 明 书 CN 103854214 A 4 。

14、2/8 页 5 0012 所述内存缓存应用模块, 用于在所述网络应用模块获取竞拍数据后, 在内存中同 步缓存所述竞拍数据, 根据所述竞拍数据更新统计数据 ; 0013 所述异步结算模块, 用于批量读取竞拍数据, 进行结算, 将结算后的竞拍数据持久 化到数据库中。 0014 进一步地, 所述网络应用模块包括竞拍请求接收单元和第一内存调用单元, 其 中 : 0015 所述竞拍请求接收单元, 用于接收竞拍请求, 从竞拍请求中获取竞拍数据 ; 0016 所述第一内存调用单元, 用于调用内存缓存应用模块在内存中同步缓存所述竞拍 数据。 0017 进一步地, 所述网络应用模块还包括逻辑校验单元, 其用于对。

15、竞拍请求进行逻辑 校验, 包括以下校验中的一种或多种 : 竞拍价格是否高于统计数据中的当前最高价、 竞拍时 间是否在竞拍期内、 用户账户余额是否足够。 0018 进一步地, 所述网络应用模块还包括展示单元, 其用于展示统计数据的部分或全 部内容。 0019 进一步地, 所述内存缓存应用模块包括竞拍数据缓存单元和统计数据更新单元, 其中 : 0020 所述竞拍数据缓存单元, 用于在内存中缓存所述网络应用模块获取的竞拍数据 ; 0021 所述统计数据更新单元, 用于根据所述竞拍数据更新统计数据。 0022 进一步地, 所述异步结算模块包括竞拍数据读取单元、 结算单元和持久化单元, 其 中 : 00。

16、23 所述竞拍数据读取单元, 用于从内存中批量读取未结算的竞拍数据 ; 0024 所述结算单元, 用于根据所述竞拍数据读取单元读取的竞拍数据进行结算 ; 0025 所述持久化单元, 用于将结算后的竞拍数据持久化到数据库中。 0026 进一步地, 所述结算单元根据所述竞拍数据读取单元读取的竞拍数据进行结算, 包括 : 所述结算单元在所述竞拍数据读取单元批量读取的当前批次的竞拍数据中, 针对一 竞拍商品, 确定所述竞拍商品的当前最高价, 冻结所述当前最高价对应的用户的账户金额, 解冻上一次结算时所述竞拍商品的最高价对应的用户的账户金额。 0027 进一步地, 所述异步结算模块还包括第二内存调用单元。

17、, 其用于调用内存缓存应 用模块删除结算后的竞拍数据。 0028 进一步地, 所述竞拍数据包括以下内容 : 用户标识、 竞拍的商品标识、 竞拍价格、 竞 拍时间 ; 所述统计数据包括以下内容 : 出价次数、 当前最高价、 竞拍记录。 0029 为解决上述技术问题, 本发明还提供了一种竞拍数据的处理方法, 其特征在于, 包 括 : 0030 接收竞拍请求, 从所述竞拍请求中获取竞拍数据 ; 0031 获取所述竞拍数据后, 在内存中同步缓存所述竞拍数据, 根据所述竞拍数据更新 统计数据 ; 0032 批量读取竞拍数据, 进行结算, 将结算后的竞拍数据持久化到数据库中。 0033 进一步地, 在所述。

18、接收竞拍请求后, 所述方法还包括 : 对竞拍请求进行逻辑校验, 所述逻辑校验包括以下校验中的一种或多种 : 竞拍价格是否高于统计数据中的当前最高 说 明 书 CN 103854214 A 5 3/8 页 6 价、 竞拍时间是否在竞拍期内、 用户账户余额是否足够。 0034 进一步地, 在所述更新统计数据后, 所述方法还包括 : 展示所述统计数据的部分或 全部内容。 0035 进一步地, 所述批量读取竞拍数据, 进行结算, 将结算后的竞拍数据持久化到数据 库中, 包括 : 从内存中批量读取未结算的竞拍数据 ; 根据读取的所述竞拍数据进行结算 ; 将 结算后的竞拍数据持久化到数据库中。 0036 。

19、进一步地, 所述根据读取的所述竞拍数据进行结算包括 : 在批量读取的当前批次 的竞拍数据中, 针对一竞拍商品, 确定所述竞拍商品的当前最高价, 冻结所述当前最高价对 应的用户的账户金额, 解冻上一次结算时所述竞拍商品的最高价对应的用户的账户金额。 0037 进一步地, 在所述根据读取的所述竞拍数据进行结算后, 所述方法还包括 : 删除内 存中结算后的竞拍数据。 0038 进一步地, 所述竞拍数据包括以下内容 : 用户标识、 竞拍的商品标识、 竞拍价格、 竞 拍时间 ; 所述统计数据包括以下内容 : 出价次数、 当前最高价、 竞拍记录。 0039 针对现有技术方案的缺点, 本申请采用先同步把竞拍。

20、数据写入内存中, 实时计算 统计数据, 并存储在内存中, 然后在系统后台通过独立的线程, 异步的按商品合并竞拍数据 后对用户的竞拍行为进行结算, 并持久化在数据库中。 采用本申请的设计, 使得每一次竞拍 行为带来的计算量很小, 对内存也只有几次写的操作, 而且内存的读写性能远远超过磁盘 的读写性能, 一般是磁盘的几百至上千倍, 因此利用内存的高效读写能力记录竞拍的数据, 在关键的高并发场景中不强依赖于数据库的性能好坏, 充分发挥了内存快速读写的能力。 并且利用内存实时地更新竞拍过程中的统计数据, 很大程度上发挥了计算机在竞拍数据处 理系统中的处理能力。本申请的竞拍数据处理系统和方法不但不需要复。

21、杂的业务逻辑计 算, 而且处理速度快。 附图说明 0040 图 1 为实施例 1 竞拍数据处理系统整体结构示意图 ; 0041 图 2 为实施例 1 中网络应用模块 10 结构示意图 ; 0042 图 3 为实施例 1 中内存缓存应用模块 20 结构示意图 ; 0043 图 4 为实施例 1 中异步结算模块 30 结构示意图 ; 0044 图 5 为实施例 2 竞拍数据的处理方法流程图 ; 0045 图 6 为实施例 2 中步骤 501 和 502 的一种优选方式流程图 ; 0046 图 7 为实施例 2 中步骤 503 的一种优选方式流程图 ; 0047 图 8 为应用示例 1 竞拍详情页面。

22、图。 具体实施方式 0048 对于现有竞拍系统, 如果要提高系统的 QPS, 需要花费很高的硬件成本, 而且依赖 于外部的系统也要做相应的软、 硬件升级。为了以较低的成本提高竞拍系统的 QPS、 写能力 以及计算能力, 本申请设计了一种新的竞拍数据处理方法和系统。 0049 为使本申请的目的、 技术方案和优点更加清楚明白, 下文中将结合附图对本申请 的实施例进行详细说明。 需要说明的是, 在不冲突的情况下, 本申请中的实施例及实施例中 说 明 书 CN 103854214 A 6 4/8 页 7 的特征可以相互任意组合。 0050 实施例 1 0051 本实施例的竞拍数据处理系统如图 1 所示。

23、, 包括网络应用模块 10、 内存缓存应用 模块 20 和异步结算模块 30, 其中 : 0052 该网络应用模块 10, 用于接收竞拍请求, 从中获取竞拍数据 ; 0053 该内存缓存应用模块 20, 用于在网络应用模块获取竞拍数据后, 在内存中同步缓 存该竞拍数据, 并根据竞拍数据更新统计数据 ; 0054 该异步结算模块 30, 用于批量读取竞拍数据进行结算, 将结算后的竞拍数据持久 化到数据库中。 0055 由于内存的读写速度高于数据库和磁盘, 因此通过内存缓存竞拍数据, 可以缩短 竞拍请求的响应时间。 且通过内存实时更新统计数据, 一方面避免重复计算, 另一方面也方 便查询。对竞拍数。

24、据的结算, 是与竞拍行为异步进行的, 由单独的异步结算模块执行, 不影 响统计数据的更新以及系统的 QPS, 另外, 批量处理可显著提高处理速度。 0056 为使本领域技术人员更好的理解本发明, 下面对上述各模块进行具体介绍。在介 绍之前, 先对上例中涉及的一些概念进行举例说明。 竞拍请求中包括竞拍数据, 竞拍数据包 括以下内容 : 用户标识 (ID) 、 竞拍的商品标识、 竞拍价格、 竞拍时间。统计数据是针对商品 的, 包括以下内容 : 竞拍次数、 当前最高价、 竞拍记录, 其中竞拍记录包含了用户的每次竞拍 行为, 每次竞拍行为通过竞拍数据来体现, 也就是说, 竞拍记录包括了从竞拍开始到竞拍。

25、期 满这期间内的所有竞拍数据。 以上关于竞拍数据以及统计数据的内容仅为一种优选实施方 式的举例, 在其他实施例中, 可以在此例基础上进行增减。 0057 首先对网络应用模块 10 进行说明如下 : 0058 网络应用模块 10 主要负责竞拍页面的展示, 与用户的竞拍行为进行交互, 以及获 取竞拍数据。 0059 一种优选的实施方式是, 该网络应用模块 10 在接收到竞拍请求后, 还用于对竞拍 请求进行逻辑校验, 例如执行以下判断中的一种或多种 : 竞拍价格是否高于内存存储的统 计数据中的当前最高价、 竞拍时间是否在竞拍期内、 用户账户余额是否足够。 在逻辑校验成 功后, 再调用内存缓存应用模块。

26、 20 提供的服务, 将此次竞拍行为的竞拍数据同步缓存到内 存中。此处所列举逻辑校验的内容仅为举例说明, 在实际系统中, 可根据需要进行设计。 0060 另一种优选的实施方式是, 网络应用模块 10 在每接收到竞拍请求后, 展示内存缓 存应用模块 20 在内存中更新的该商品的统计数据的部分内容或者全部内容, 例如展示当 前最高价, 以方便其他用户进行竞拍。 此处所述展示是指向客户端提供展示内容 (可以主动 发送, 也可待收到请求后发送) , 如果服务器端需要显示, 网络应用模块 10 也可实现服务器 端的统计数据显示。 0061 结合上述优选实施方式, 网络应用模块 10 可以包括竞拍请求接收。

27、单元 101, 逻辑 校验单元 102, 内存调用单元 103 以及展示单元 104, 如图 2 所示 (图中所示虚线框表示可 选) , 其中 : 0062 竞拍请求接收单元 101, 用于接收竞拍请求, 从竞拍请求中获取竞拍数据 ; 0063 逻辑校验单元 102, 用于对竞拍请求进行逻辑校验 ; 0064 内存调用单元 103, 用于调用内存缓存应用模块 20 在内存中同步缓存竞拍数据 ; 说 明 书 CN 103854214 A 7 5/8 页 8 具体地, 该内存调用单元103可采用命令调用的方式调用内存缓存应用模块20同步缓存竞 拍数据, 和/或, 采用下发命令的方式使内存缓存应用模。

28、块20更新统计数据 ; 例如内存调用 单元 103 调用内存缓存应用模块 20 同步缓存竞拍数据后, 内存缓存应用模块 20 自行根据 缓存的竞拍数据更新统计数据 ; 0065 展示单元 104, 用于展示统计数据的部分内容或全部内容 (包括在服务器端展示, 以及向客户端提供展示数据) 。 0066 下面对该内存缓存应用模块 20 进行说明如下 : 0067 如图 3 所示, 可将该内存缓存应用模块 20 划分为两个单元 : 竞拍数据缓存单元 201 和统计数据更新单元 202, 其中 : 0068 竞拍数据缓存单元 201, 用于在内存中缓存网络应用模块 10 获取的竞拍数据 ; 0069 。

29、统计数据更新单元 202, 用于根据竞拍数据更新统计数据。 0070 对于统计数据更新单元 202, 其可以根据网络应用模块 10 发送的命令更新统计数 据, 例如统计数据更新单元 202 根据所述命令将当前商品的竞拍次数加 1, 以及根据竞拍数 据更新内存中的当前商品的最高出价等。统计数据更新单元 202 也可以不依赖于网络应用 模块 10 发送的命令, 而设计为根据缓存的竞拍数据自行更新统计数据。例如, 对于同一个 商品, 竞拍数据缓存单元201每缓存一次竞拍数据, 统计数据更新单元202将对应商品的竞 拍次数加 1, 同时将该商品当前最高价更新为该竞拍数据中的竞拍价格, 并将该竞拍数据作。

30、 为竞拍记录保存。 0071 下面对该异步结算模块 30 进行说明如下 : 0072 如图 4 所示, 该异步结算模块 30 包括竞拍数据读取单元 301、 结算单元 302、 持久 化单元 303, 其中 : 0073 竞拍数据读取单元 301, 用于从内存中批量读取未结算的竞拍数据 ; 0074 结算单元 302, 用于根据竞拍数据读取单元 301 读取的竞拍数据进行结算, 结算过 程包括 : 结算单元302在竞拍数据读取单元301批量读取的当前批次的竞拍数据中, 针对一 竞拍商品, 确定该竞拍商品的当前最高价, 冻结该当前最高价对应的用户的账户金额, 解冻 上一次结算时该竞拍商品的最高价。

31、对应的用户的账户金额 ; 0075 持久化单元303, 用于将结算后的竞拍数据持久化到数据库中。 结算后的竞拍数据 包括竞拍数据读取单元 301 当前批量读取的竞拍数据。所谓持久化到数据库中是指将内存 中的数据写入数据库。 0076 本申请中所述数据库可以是任何通用的关系型数据库, 只要能够提供数据保存和 查询的功能即可。 0077 一种优选的实施方式是, 该异步结算模块 30 还可包括一内存调用单元 304, 用于 调用内存缓存应用模块 20 删除结算后的竞拍数据。 0078 异步结算模块 30 会不断地循环读数据、 结算、 持久化这个过程。本例中竞拍数据 处理系统关键数据 (指与竞拍相关的。

32、数据, 包括竞拍数据和统计数据) 的存取没有直接依赖 数据库, 所以对数据库的性能没有特别地要求, 节省了系统部署时在数据库软硬件方面的 开销。 0079 上述各模块、 单元可以由软件实现, 或由硬件实现, 或者由软件和硬件两者的结合 来实现。如果由软件实现, 网络应用模块和异步结算模块可用 Java 实现, 在 Linux 系统上 说 明 书 CN 103854214 A 8 6/8 页 9 运行能达到最佳的实施效果。内存缓存应用模块可以用 C+ 实现, 在 Linux 系统上运行能 达到的实施效果更佳。 0080 实施例 2 0081 本实施例描述竞拍数据的处理方法, 如图 5 所示, 包。

33、括以下步骤 : 0082 步骤 501, 接收竞拍请求, 从中获取竞拍数据 ; 0083 步骤 502, 获取竞拍数据后, 在内存中同步缓存该竞拍数据, 并根据该竞拍数据更 新统计数据 ; 0084 步骤 503, 批量读取竞拍数据, 进行结算, 将结算后的竞拍数据持久化到数据库中。 0085 一种优选的实施方式是, 在接收到竞拍请求后, 先对竞拍请求进行逻辑校验, 校验 通过后再在内存中同步缓存竞拍数据, 否则结束流程或者报错。对逻辑校验的说明参见实 施例 1。 0086 另一种优选的实施方式是, 在更新统计数据后, 展示更新后的统计数据的部分内 容或全部内容。 0087 结合上述优选实施方。

34、式, 步骤 501 和步骤 502 的执行过程如图 6 所示, 包括步骤 601-604, 其中步骤 603 是对内存的操作 : 0088 步骤 601, 接收竞拍请求, 从竞拍请求中获取竞拍数据 ; 0089 步骤 602, 判断逻辑校验是否通过, 如果通过, 转步骤 603, 否则, 结束 ; 0090 逻辑校验包括以下判断中的一种或多种 : 竞拍价格是否高于内存存储的统计数据 中的当前最高价、 竞拍时间是否在竞拍期内、 用户账户余额是否足够。 即满足以下条件任意 一条或多条, 则认为逻辑校验通过 : 竞拍价格高于内存存储的统计数据中的当前最高价、 竞 拍时间在竞拍期内、 用户账户余额足够。

35、。 0091 步骤 603, 在内存中同步缓存竞拍数据, 并根据竞拍数据更新统计数据 ; 0092 步骤 604, 展示更新后的统计数据的部分内容或全部内容。 0093 如图 7 所示, 上述步骤 503 具体包括以下步骤 : 0094 步骤 5031, 从内存中批量读取未结算的竞拍数据 ; 0095 步骤 5032, 根据读取的竞拍数据进行结算 ; 0096 结算过程包括 : 对于一件竞拍商品, 在批量读取的当前批次的竞拍数据中, 确定该 竞拍商品的当前最高价, 冻结当前最高价对应的用户的账户金额, 解冻上一次结算时该竞 拍商品的最高价对应的用户的账户金额 ; 0097 具体执行时, 可以包。

36、括以下步骤 : 0098 步骤 a, 先按照商品标识对当前批次所有未结算竞拍数据进行分类, 商品标识相同 的竞拍数据属于同一类 ; 0099 步骤 b, 对每一类竞拍数据按照竞拍价格进行排序, 得到竞拍价格最高的一组竞拍 数据 ; 0100 排序仅是得到最高竞拍价的一种手段, 在其他实施例中, 也可以采用其他方式获 得竞拍价格最高的一组竞拍数据。 0101 步骤 c, 冻结该组竞拍数据中的用户标识对应的账户中的金额, 并更新该用户标识 对应的账户中的金额, 冻结的金额至少等于该用户的竞拍价格, 冻结后该用户标识对应账 户中的余额为冻结前的余额与冻结的金额的差值 ; 说 明 书 CN 10385。

37、4214 A 9 7/8 页 10 0102 优选地, 可以向单独用于管理账户的数据库中增加一条该账户的冻结记录。 0103 步骤 d, 解冻上一次结算时该商品标识的最高竞拍价格对应的用户的账户金额, 并更新该用户的账户余额, 解冻后该用户账户中的余额为解冻前的余额与解冻的金额的和 值, 其中解冻的金额应等于上次冻结的金额。 0104 如果曾经在管理账户的数据库中记录了该账户的冻结记录, 则此时可删除该账户 的冻结记录。系统可定期对这些账户金额的流转记录日志。 0105 每次结算后商品及其最高价对应的竞拍数据可以保留在内存中, 方便下次结算时 调用, 也可由一数据库保留, 取决于结算系统。 0。

38、106 上述步骤 c 和步骤 d 的执行顺序不限。 0107 步骤 5033, 将结算后的竞拍数据持久化到数据库中。 0108 由于只有最高的出价才是有意义的, 故只对最高价对应的数据进行处理, 其它的 竞拍数据可以直接持久化到数据库。通过批量结算, 而不必对每一个用户的竞拍请求都进 行结算, 可以大大提高处理速度。 0109 其中步骤5031和步骤5033是对内存的操作。 在竞拍开始后, 上述步骤5031-5033 循环执行, 但如果 5031 中读取不到未结算的竞拍数据, 则流程结束。 0110 一种优选的实施方式是, 在结算完成后删除内存中结算后的竞拍数据, 本步骤可 以在步骤 5033。

39、 之前执行, 也可以在步骤 5033 之后执行, 本步骤也是对内存的操作。 0111 应用示例 1 0112 本示例以标王竞拍处理系统为例对展示的内容进行说明。 0113 图 8 所示为客户端所见界面的一种示例。图中 “关键词” 为竞拍商品标识。图中 展示的 “当前价格” (即当前最高价) 、“出价次数” 、“竞拍记录” 等统计信息都是从内存中获 取后再展示给客户端的。 在用户确定出价竞拍后, 该用户标识、 竞拍商品标识、 竞拍价格、 竞 拍时间等竞拍数据将通过竞拍请求发送至服务器端 (竞拍数据处理系统) , 由服务器端进行 如上述实施例中所述的处理。 每一次用户的出价行为都会触发竞拍数据处理。

40、系统更新相应 的统计数据。 0114 应用示例 2 0115 本示例说明一种内存中数据结构设计, 如表 1 所示。 0116 表 1 缓存数据结构 0117 0118 表1中展示的是在内存中的一种数据结构设计, 其中bid_list是以链表 (List) 的 形式保存用户的每一次竞拍行为, 内容包括但不限于 : 用户标识、 商品标识、 竞拍价格、 竞拍 时间等。用户的竞拍数据以追加地方式添加到链表的尾部。每次异步结算模块就从该链表 说 明 书 CN 103854214 A 10 8/8 页 11 头部读取未结算的数据进行结算后再删除这些数据。 0119 表中, bidcnt_001 保存的是一。

41、件商品的竞价次数, 其中 001 代表商品标识, 以商品 的代码作为缓存的 key, 每一次发生对该商品的竞价行为, 只需要取出这个 key 对应的值, 加 1 后再写入内存中即可。top_price 以 hashmap(基于哈希表的 Map 接口实现的一种数 据结构) 形式的保存商品当前的最高价, 如某人对 001 商品出了一个更高的价, 此时 top_ price 中 001 对应的值就会更新 (例如由网络应用模块调用内存缓存应用模块的接口进行 更新) 。同理, 如果需要统计其它的竞拍数据, 都可以设计相应的数据结构在内存缓存应用 中保存, 并做实时更新。 0120 本领域普通技术人员可以。

42、理解上述方法中的全部或部分步骤可通过程序来指令 相关硬件完成, 所述程序可以存储于计算机可读存储介质中, 如只读存储器、 磁盘或光盘 等。可选地, 上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应 地, 上述实施例中的各模块 / 单元可以采用硬件的形式实现, 也可以采用软件功能模块的 形式实现。本发明不限制于任何特定形式的硬件和软件的结合。 0121 当然, 本发明还可有其他多种实施例, 在不背离本发明精神及其实质的情况下, 熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形, 但这些相应的改变和变 形都应属于本发明所附的权利要求的保护范围。 说 明 书 CN 103854214 A 11 1/3 页 12 图 1 图 2 图 3 图 4 说 明 书 附 图 CN 103854214 A 12 2/3 页 13 图 5 图 6 说 明 书 附 图 CN 103854214 A 13 3/3 页 14 图 7 图 8 说 明 书 附 图 CN 103854214 A 14 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 >


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1