[发明专利]一种数据处理方法和系统有效
申请号: | 201410115278.3 | 申请日: | 2014-03-26 |
公开(公告)号: | CN103886079B | 公开(公告)日: | 2018-03-30 |
发明(设计)人: | 者文明 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京德琦知识产权代理有限公司11018 | 代理人: | 牛峥,王丽琴 |
地址: | 100080 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据处理 方法 系统 | ||
技术领域
本发明涉及计算机技术领域,特别涉及一种高并发性能的数据处理方法和系统。
背景技术
售后服务是商业行为中非常重要的环节。无论是传统零售商,还是电商企业,都必须建立一套完善的售后服务体系,才能保障销售产品的品质和客户的合法权益,并且售后服务质量的好坏还直接影响到客户的购物体验。
对于电商企业来讲,客户在电商网站购买商品,收货后如果发现存在质量、错误购买等问题,可以直接在该电商网站提交相关的售后服务申请,售后服务申请数据通过网络发送到该电商的售后服务系统中。电商网站的售后服务专员直接在售后服务系统中审核并处理该售后服务申请数据。
在目前的电商企业中,由于售后服务专员的考核指标主要通过工作量进行衡量,进而为了能够提高其自身的考核指标,售后服务专员会在售后服务系统中争抢售后服务申请数据进行审核和处理。在售后服务系统中,售后服务申请数据的领取属于一种抢占模式(类似12306网站的抢票模式),这就要求售后服务系统的领取环节必须支持高并发处理。
在现有技术中,对于OLTP(On-Line Transaction Processing,联机事务处理系统,也称为面向交易的处理系统)类应用系统,通常都采用全流程实时数据库交互的模式进行数据处理,如图1所示,其交互过程包括如下步骤:
第1步、客户端向Web服务端发起请求,例如售后服务申请单领取请求;
第2步、Web服务端接收到客户端发起的请求,并和数据库建立连接,向数据库发起数据库更新事务请求;
第3步、数据库接收到数据库更新事务请求后,执行事务内的更新动作以更新对应的数据记录,比如售后服务申请单的领取状态、领取数量等,更新成功之后事务结束,同时返回给Web服务端事务执行成功标识;
第4步、Web服务端接收到数据库返回的事务成功标识后,将数据处理结果返回给客户端,比如售后服务申请单最终领取成功数量等信息;
第5步、客户端接收到服务端返回的信息后提示用户领取成功信息。
现有技术中所采用的上述全流程实时数据库交互模式的缺陷表现在如下几个方面:
1)因为全流程实时和数据库交互,进而对数据库形成强依赖。数据库的事务并发性能(TPS)有限,因此可导致OLTP类应用系统的并发性能存在瓶颈风险。而实践也表明无论如何进行查询SQL(Structured Query Language,结构化查询语言)、数据库配置等优化,都很难满足上述抢占式应用场景的高并发需求;
2)在高并发的应用场景下,现有技术方案容易发生数据库死锁,如果死锁处理不好的话容易导致数据库崩溃,进而导致系统无法使用等严重后果;
3)并发性能差,用户体验不好,往往在客户端发起领取请求后,要数秒之后才能返回结果。
发明内容
有鉴于此,本发明提供一种高并发数据处理方法和系统,以适用于解决系统中类似抢占模式的高并发应用。
本发明的技术方案是这样实现的:
一种数据处理方法,包括数据写入阶段和数据处理阶段,其中:
所述数据写入阶段包括:
接收客户端发送来的数据信息;
创建数据库连接,并开启数据库事务,将所述数据信息持久化到数据库;
将所述数据信息中的待处理数据写入Redis缓存,之后提交数据库事务;
所述数据处理阶段包括:
从所述Redis缓存获取所述待处理数据,并对所述待处理数据进行处理,将处理后的结果数据发送到消息队列;
监听所述消息队列,并从所述消息队列中获取所述结果数据,并将所接收的结果数据持久化到所述数据库;
删除所述Redis缓存中的所述待处理数据。
进一步,在所述数据写入阶段中:
若所述数据信息持久化到数据库失败,则回滚所述数据库事务,并断开所述数据库连接。
进一步,在所述数据处理阶段中:
若所述结果数据持久化到所述数据库失败,则回滚所述数据库事务,且不删除所述Redis缓存中的所述待处理数据。
进一步,所述Redis缓存中具有存储队列List,以及与所述List对应的已完成队列Complete List;
在所述数据写入阶段中:
将所述待处理数据写入Redis缓存时,是将所述待处理数据写入所述存储队列List中;
在所述数据处理阶段中:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410115278.3/2.html,转载请声明来源钻瓜专利网。