一种电子商务平台高并发事件的处理方法及系统技术方案

技术编号:15762747 阅读:113 留言:0更新日期:2017-07-05 22:45
本发明专利技术公开了一种电子商务平台高并发事件的处理方法及系统,其中方法包括:对用户请求进行分片路由,分片后的请求以任务的形式放入队列中;通过单线程一次从队列中取出一个任务执行;将领域对象存储在本地内存中,由领域对象处理任务执行的业务逻辑;当发生事件时,更新领域对象。与现有技术相比,本发明专利技术的有益效果包括:单线程一次执行一个任务,可以避免并发问题,但处理能力会不如多线程并发处理高,让领域对象常驻本地内存中,业务逻辑处理交给领域对象,由领域对象维护最新状态,能有效的减少IO操作,提升处理性能,提供高性能、高并发、高可用的服务支持,彻底解决限时售卖电商平台秒杀场景的资源争夺问题。

Method and system for processing high concurrent event of electronic commerce platform

The invention discloses a method and system for processing an electronic commerce platform for high concurrent events, the method comprises the following steps: the user request slice after slice routing request in the form of the task in the queue; through a single thread enqueues a task execution; domain objects stored in the local memory in the field of object, the business logic processing task execution; when the event occurs, update the domain object. Compared with the prior art, the invention has the advantages that a single thread to perform a task, can avoid the problem of concurrency, but processing power will not multi-threaded concurrent processing, let the field objects reside in local memory, business logic processing to the domain object, by the field of object can effectively maintain the latest state. The reduced IO operation, improve processing performance, high performance, high concurrency, high availability service support, solve the resource contention problems limit the sale of electronic business platform seckill scene.

【技术实现步骤摘要】
一种电子商务平台高并发事件的处理方法及系统
本专利技术涉及计算机
,尤其是涉及一种电子商务平台高并发事件的处理方法及系统。
技术介绍
限时特卖是时下最为常见的一种电子商务模式,即是以互联网为媒介的B2C电子零售交易活动,以限时特卖的形式,定期定时推出大批量商品参与限时抢购。这一模式的特征决定了售卖过程中会存在大量的秒杀场景,如何解决秒杀场景中资源争夺和防超卖是网站架构需要考虑的首要问题。现有限时售卖平台在高并发下采用的商品防超卖技术方案主要有:(1)基于缓存,即商品库存保存在缓存中(如Redis,Memcache),利用缓存的“单线程”模型和轻量级锁等特性来控制高并发下的资源争夺。(2)基于乐观锁,即认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做。具体做法有两种:使用数据版本(Version)记录机制实现和使用时间戳实现。两种实现方式原理一样。(3)基于数据库队列,即在数据库内部增加队列机制,这种方式需要修改数据库底层的实现,技术实力要求高,一般很少这么去做。现有技术方案缺陷:一是引入缓存可以解决高并发下的性能问题,但超卖的根结在于减库存操作是一个事务操作,需要先select,然后insert,最后update-1。最后这个-1操作是不能出现负数的,但是当多用户在有库存的情况下并发操作,出现负数这是无法避免的,所以最后还要用锁来保证事务,这也就牺牲了并发访问性。二是利用乐观锁,虽然能解决超卖问题,但也会因为乐观锁的原因带来少卖的问题。分片路由:一种路由算法,先根据用户的特性对请求分片,然后为各片选择一条路由路径。
技术实现思路
本专利技术的目的在于克服上述技术不足,提出一种电子商务平台高并发事件的处理方法及系统,解决现有技术中高并发的秒杀场景中资源争夺的技术问题。为达到上述技术目的,本专利技术的技术方案提供一种电子商务平台高并发事件的处理方法,其中,包括:S1、对用户请求进行分片路由,分片后的请求以任务的形式放入队列中;S2、通过单线程一次从队列中取出一个任务执行;S3、将领域对象存储在本地内存中,由领域对象处理任务执行的业务逻辑;S4、当发生事件时,更新领域对象。本专利技术的技术方案还提供一种电子商务平台高并发事件的处理系统,其中,包括:分片路由模块:对用户请求进行分片路由,分片后的请求以任务的形式放入队列中;单线程执行模块:通过单线程一次从队列中取出一个任务执行;领域对象存储与处理模块:将领域对象存储在本地内存中,由领域对象处理任务执行的业务逻辑;领域对象更新模块:当发生事件时,更新领域对象。与现有技术相比,本专利技术的有益效果包括:单线程一次执行一个任务,可以避免并发问题,但处理能力会不如多线程并发处理高,让领域对象常驻本地内存中,业务逻辑处理交给领域对象,由领域对象维护最新状态,能有效的减少IO操作,提升处理性能,提供高性能、高并发、高可用的服务支持,彻底解决限时售卖电商平台秒杀场景的资源争夺问题。附图说明图1是本专利技术提供的一种电子商务平台高并发事件的处理方法流程图;图2是本专利技术提供的一种电子商务平台高并发事件的处理系统结构框图。附图中:1、电子商务平台高并发事件的处理系统,11、分片路由模块,12、单线程执行模块,13、领域对象存储与处理模块,14、领域对象更新模块。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术提供了一种电子商务平台高并发事件的处理方法,其中,包括:S1、对用户请求进行分片路由,分片后的请求以任务的形式放入队列中;S2、通过单线程一次从队列中取出一个任务执行;S3、将领域对象存储在本地内存中,由领域对象处理任务执行的业务逻辑;S4、当发生事件时,更新领域对象。本专利技术所述的电子商务平台高并发事件的处理方法,步骤S1中:分片后的请求会被路由到具体的应用实例上,应用实例自身维护着一个本地队列。本专利技术所述的电子商务平台高并发事件的处理方法,步骤S2中:通过单线程一次从队列中的取出一个任务执行,避免了并发问题。应用实例内部队列是一个有序队列,以单线程一次只取一个的方式保证任务有序的被执行,从而避免了资源争夺带来的并发问题。本专利技术所述的电子商务平台高并发事件的处理方法,步骤S3中:单线程一次执行一个任务,可以避免并发问题,但处理能力会不如多线程并发处理高;提升处理能力的关键是减少IO操作,为了完成一次业务处理(比如扣除库存),可能需要多次与数据库进行交互,数据库的连接和释放都是IO开销,即便是事先将数据加载到在像Redis,Memcache等分布式缓存中,也会带来网络IO的开销,假设业务逻辑再复杂点,IO开销将会更大;业务逻辑处理可以交给领域对象(domainobject),由领域对象维护着最新状态(比如库存数),同时让领域对象常驻本地内存中,能有效的减少IO操作;由于领域对象是存储在本地内存中,可借助于事件溯源机制来保障它的可用性,当用户请求到达时,领域对象所在的机器可能处于不可用(出现故障或网络断开)的状态,一旦机器不可用,领域对象将会被从内存中清除,这时,为了保证用户请求能得到正常的响应,路由子程序会重新计算路由路径,将请求路由到新的机器上。新机器上是没有领域对象的相关信息的,需要通过事件溯源机制,将先前保存的事件重新回放一遍,在新机器上恢复领域对象的状态,再接着由恢复后的领域对象来完成业务处理。从而,保证了系统的可用性。事件回放相比从数据库中读取数据效率要高,整个回放过程非常短,用户几乎感觉不到。本专利技术所述的电子商务平台高并发事件的处理方法,步骤S4中:当发生事件时,先将事件存储,再通知领域对象做出状态变更。例如库存增减这样的操作,在系统内被视为一个事件,会先将事件存储起来,再通知领域对象做出状态变更(比如扣除库存、库存的校验在领域对象内完成,保证了原子性)。本专利技术还提供电子商务平台高并发事件的处理系统1,其中,包括:分片路由模块11:对用户请求进行分片路由,分片后的请求以任务的形式放入队列中;单线程执行模块12:通过单线程一次从队列中取出一个任务执行;领域对象存储与处理模块13:将领域对象存储在本地内存中,由领域对象处理任务执行的业务逻辑;领域对象更新模块14:当发生事件时,更新领域对象。本专利技术所述的电子商务平台高并发事件的处理系统1,分片路由模块11中:分片后的请求会被路由到具体的应用实例上,应用实例自身维护着一个本地队列。本专利技术所述的电子商务平台高并发事件的处理系统1,领域对象存储与处理模块13中:当领域对象存储在的终端处于不可用状态时,借助于事件溯源机制来保障领域对象的可用性。本专利技术所述的电子商务平台高并发事件的处理系统1,领域对象更新模块14中:当发生事件时,先将事件存储,再通知领域对象做出状态变更。与现有技术相比,本专利技术的有益效果包括:单线程一次执行一个任务,可以避免并发问题,但处理能力会不如多线程并发处理高,让领域对象常驻本地内存中,业务逻辑处理交给领域对象,由领域对象维护最新状态,能有效的减少IO操作,提升处理性能,提供本文档来自技高网
...
一种电子商务平台高并发事件的处理方法及系统

【技术保护点】
一种电子商务平台高并发事件的处理方法,其特征在于,包括:S1、对用户请求进行分片路由,分片后的请求以任务的形式放入队列中;S2、通过单线程一次从队列中取出一个任务执行;S3、将领域对象存储在本地内存中,由领域对象处理任务执行的业务逻辑;S4、当发生事件时,更新领域对象。

【技术特征摘要】
1.一种电子商务平台高并发事件的处理方法,其特征在于,包括:S1、对用户请求进行分片路由,分片后的请求以任务的形式放入队列中;S2、通过单线程一次从队列中取出一个任务执行;S3、将领域对象存储在本地内存中,由领域对象处理任务执行的业务逻辑;S4、当发生事件时,更新领域对象。2.如权利要求1所述的电子商务平台高并发事件的处理方法,其特征在于,步骤S1中:分片后的请求会被路由到具体的应用实例上,应用实例自身维护着一个本地队列。3.如权利要求1所述的电子商务平台高并发事件的处理方法,其特征在于,步骤S3中:当领域对象存储在的终端处于不可用状态时,借助于事件溯源机制来保障领域对象的可用性。4.如权利要求1所述的电子商务平台高并发事件的处理方法,其特征在于,步骤S4中:当发生事件时,先将事件存储,再通知领域对象做出状态变更。5.一种电子商务平台高并发事件的处理...

【专利技术属性】
技术研发人员:李继富陈秋余何振军钟超何伟昌
申请(专利权)人:武汉奇米网络科技有限公司
类型:发明
国别省市:湖北,42

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

1