一种快速处理系统中高流量数据的方法

文档序号:9810359阅读:542来源:国知局
一种快速处理系统中高流量数据的方法
【技术领域】
[0001]本发明涉及通讯技术领域,尤其涉及一种快速处理系统中高流量数据的方法。
【背景技术】
[0002]现有的电商出售一些物品、或进行医疗的预约、或为了吸引顾客、聚集人气,会将虚拟物品先放入系统中,然后这些虚拟物品一般都会限量。对用户的需求是比较巨大的,用户蜂拥而来,往往几秒钟就可以将虚拟物品抢空。而对于系统来说可能更多的是考验。如:年尾的购票,商家的抵用卷,医院的看病预约号等等。
[0003]对于获取这些虚拟的物品是一场速度的比拼,也就是俗话说的“手快有、手慢无”。大家都争着在活动开始后,第一时间将虚拟物品抢到。因此活动开始的一瞬间系统会有大量的流量涌入,几倍、甚至于十几倍的流量对系统的冲击不可谓不大。如果系统没有足够的应对措施,很可能就被瞬时高流量给压垮了。
[0004]其次,突如其来的高流量,给系统各个模块都来了一连串的压力,系统可能会因此变慢,而且可能会彼此影响,影响可用性。比如:数据库更新虚拟物品库存,需对同一行记录加锁,随着并发的压力逐渐增大,数据库更新的性能是逐渐下降的。从而引起提供库存服务的应用服务性能下降,连锁的影响到下单服务的性能,最终反馈到消费者的可能就是整个网站购物流程性能差、响应慢。而面对响应慢的系统,很多需求者可能采取反复刷新,多次尝试,这无疑又增大了对系统的压力。
[0005]还有,上述种种给消费者带来的往往是体验上的痛苦。如:网站响应慢,点击抢购虚拟物品按钮没反应。好不容易可以操作了,却发现物品已经被抢完,消费者的参与感比较差。

【发明内容】

[0006]本发明要解决的技术问题,在于提供一种能快速处理系统中高流量数据,提高了用户的体验,同时,为系统减轻了高流量数据的压力。
[0007]本发明是这样实现的:一种快速处理系统中高流量数据的方法,所述方法需提供排队模块、调度模块以及服务模块;
[0008]所述方法为:通过排队模块接收用户访问的请求,将请求以先入先出的方式保存下来,并将用户需要的物品保存到一个队列中,所述排队模块还负责提供一系列接口,所述接口包括:给已进入队列的用户查询物品状态的接口,给调度模块拉取请求的接口,以及服务模块回写业务处理状态的接口 ;
[0009]所述调度模块负责排队模块到服务模块的动态调度,不断检查服务模块,一旦服务模块处理能力有空闲,就从队列中把用户访问请求调入服务模块;并负责向服务模块分发请求;所述调度模块不仅传递请求,还担负着调节系统处理能力;根据服务模块的实际处理能力,通过调度模块拉取请求的接口动态调节向系统拉取请求的速度;
[0010]所述服务模块接收到分发的请求后,调用系统的业务处理服务,调取队列中的物品,并返回处理结果,并调用所述服务模块回写业务处理状态的接口回写业务处理结果。
[0011]进一步的,所述队列的大小根据物品的数量进行自行定义,或者队列的大小大于物品的数量。
[0012]进一步的,所述系统包括抢抵用卷系统,购票系统或者医疗预约系统。
[0013]进一步的,所述服务模块能为系统的业务处理服务解耦,同时针对系统后面业务的处理能力,能动态调节服务模块调用后面业务处理服务的速度。
[0014]进一步的,所述排队模块有提供给已进入队列的用户查询用户请求状态的接口,给调度模块拉取请求的接口,服务模块回写业务处理状态的接口,当用户请求已进入排队模块时说明用户请求有效,用户能从排队模块查看自已请求处理的状态并立即得到回应;当后台服务模块处理完用户请求再调用队列模块回写业务处理状态的接口更改用户请求状态;这样达到异步处理。
[0015]本发明具有如下优点:本发明通过排队模块、调度模块以及服务模块的互相配合,能快速处理系统中高流量数据,提高了用户的体验,同时,为系统减轻了高流量数据的压力。本发明能推动着系统业务的发展,给业务更好的支撑和推动。
【附图说明】
[0016]图1为本发明方法流程示意图。
[0017]图2为本发明方法的框架原理图。
【具体实施方式】
[0018]本发明的系统要考虑以下几个点:
[0019]1、限流:当虚拟物品上架后,只有少部分用户能抢到虚拟物品,意味着其实大部分用户的流量传达到后台服务后都是无效。如果能引导这大部分的流量,不让这大部分的流量传达到后台服务,其实对系统的压力就很小了。因此设计思路之一就是,仅让能成功抢到虚拟物品的流量(可以有一定余量)进入系统。
[0020]2.削峰:进入系统的有效流量虽然总量不一定是很大的,但却是在很短的时间内涌入的,因此会存在很高的瞬时流量峰值。总量相同的流量在I秒钟进入系统,和在10分钟均匀地进入系统,对系统的冲击是相差很大的。高峰值的流量往往能将系统压垮。因此另一个设计思路是,如何将进入系统的瞬时高流量拉平,使得系统可以在自己处理能力范围内,将所有的请求处理完毕。
[0021]3.异步处理:传统的系统对于请求是同步处理的,即收到请求后立即处理并把结果返回给用户;系统有了削峰的设计后,请求不是被立刻处理的,因此就要求能将同步的服务改造成异步的。
[0022]4.可用性:设计时始终把系统的可用性放在重要的位置,针对系统可能出现的各种状况,都尽最大程度地保证高可用。
[0023]5.用户体验:系统设计一定要充分考虑用户体验。使用者在点击虚拟物品按钮后,无论是否能抢到虚拟物品,期望是能得到及时的反馈。系统上发生任何故障也要尽可能的保证用户体验的损害减到最小。
[0024]在对上述系统业务透彻理解的基础上,针对
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1