处理高并发流量的方法及其装置的制造方法

文档序号:9708482阅读:184来源:国知局
处理高并发流量的方法及其装置的制造方法
【技术领域】
[0001]本发明涉及流量处理领域,具体涉及一种处理高并发流量的方法及其对应装置。
【背景技术】
[0002 ]目前互联网系统后端的联机交互事务处理(OLTP)类系统(例如电商后端的订单生产系统(仓储、配送、客户售后等))依赖于关系数据库管理系统(RDBMS)。然而RDBMS的并发性能和吞吐能力相对有限,导致上述依赖于RDBMS的系统的并发性能和吞吐能力直接受到RDBMS的制约。例如在电子商务背景下,特定时间内在系统中可能产生极大的流量,使得上述依赖于RDBMS的系统难以处理这些流量,导致系统被挂起或雪崩,严重影响系统的正常运行。
[0003]对于依赖数据库(DB)的系统,目前存在三种提高系统并发性能和吞吐量的方法,包括:
[0004]1.热点缓存,将相对静态的数据进行分布式缓存,尽可能减少对数据库的访问;
[0005]2.读写分离,读的并发性能和吞吐量可以通过水平扩展从库实现,写的并发性能和吞吐量只能通过分库分表来实现,一旦分库分表之后关联、聚合等查询无法处理,存在很大的局限性;
[0006]3.异步写库,同步操作先将数据写入缓存或者消息队列中,然后异步方式写入数据库;
[0007]然而上述三种方式都存在着数据一致性和完整性方面的缺陷。例如方式I和方式2仅能够解决读的性能。方式3可在一定程度上解决写的性能,但数据一致性难以保证,存在着丢失数据的风险(缓存或者消息队列故障时还未来得及异步入库的数据可能会丢失)。
[0008]因此需要一种处理高并发流量的方法,使得能够在保证数据一致性和完整性的情况下处理高并发的数据流量。

【发明内容】

[0009]为了解决上述问题,本发明实施例提供了一种用于处理高并发流量的方法及其对应装置。
[0010]根据本发明的一个方案,提供了一种用于处理高并发流量的方法及其对应装置。该方法包括以同步方式接收来自上游系统的高并发流量;对接收到的高并发流量进行缓冲;以及以受控的方式向依赖于数据库的系统异步转发所缓冲的高并发流量。
[0011]根据本发明的第二方案,提供了一种用于处理高并发流量的装置。该装置包括:同步端,用于以同步方式接收来自上游系统的高并发流量;流量缓冲模块,用于对接收到的高并发流量进行缓冲;以及异步端,用于以受控的方式向依赖于数据库的系统异步转发所缓冲的高并发流量。
[0012]基于上述方法和设备,可以通过在依赖于数据库的系统之上增加一层缓冲防护层,将不可控的瞬时高并发流量缓冲平滑下来,有效保护依赖于数据库的系统,提升系统的并发性、吞吐量和稳定性。
【附图说明】
[0013]通过下面结合附图对发明进行的详细描述,将使本发明的上述特征和优点更加明显,其中:
[0014]图1是示出根据本发明的实施例的用于处理高并发流量的装置的示意性框图;
[0015]图2是示出根据本发明的实施例的用于处理高并发流量的方法的示意性流程图;
[0016]图3是示出根据本发明的原理的示意图;
[0017]图4是示出根据本发明的原理的另一示意图;以及
[0018]图5是示出根据本发明的实施例的高并发流量处理的一个示例的详细示意图。
【具体实施方式】
[0019]下面,参考附图详细说明本发明的优选实施方式。在附图中,虽然示于不同的附图中,但相同的附图标记用于表示相同的或相似的组件。为了清楚和简明,包含在这里的已知的功能和结构的详细描述将被省略,以避免使本发明的主题不清楚。
[0020]图1示出了根据本发明的实施例的用于处理高并发流量的装置。如图1所示,该装置包括:同步端100,用于以同步方式接收来自上游系统的高并发流量;流量缓冲模块200,用于对接收到的高并发流量进行缓冲;以及异步端300,用于以受控的方式向依赖于数据库的系统异步转发所缓冲的高并发流量。。
[0021]在图1所示的装置中,同步端100可包括:接收单元110,用于以同步方式接收来自上游系统的高并发流量;以及校验单元120,用于对以同步方式接收的高并发流量进行合法性校验。
[0022]在一些示例中,接收单元110可接收由上游系统通过调用服务的方式发送的高并发流量,其中,上游系统调用的服务是内存操作。
[0023]经校验单元120校验过的数据可被发送给流量缓冲模块200。具体地,在本发明的一些示例中,流量缓冲模块可包括:消息队列存储器210,用于在其消息队列中存放合法性校验通过的数据;以及分布式存储器220,用于分布式地存放合法性校验未通过的数据。其中,消息队列存储器210和/或分布式存储器220可以是可容量扩容的。由于消息队列存储器210和/或分布式存储器220支持水平扩容,使得可根据需要控制用于缓存数据的缓冲池的容量。
[0024]在本发明的一些示例中,异步端300可包括消费单元310,用于对消息队列存储器210中存放的数据进行消费,并调用依赖于数据库的系统的服务进行相应业务逻辑处理。其中,如在消费过程中出现异常,将所消费的来自于消息队列的数据发送到分布式存储器220。
[0025]异步端300还可包括任务调度单元320,用于通过调度的方式轮询出分布式存储器中存放的数据,并调用依赖于数据库的系统的服务进行相应业务逻辑处理。
[0026]消费单元310还可用于根据依赖于数据库的系统的负荷能力,动态调整所述消息队列的消费线程的数量。
[0027]图2示出了根据本发明实施例的用于处理高并发流量的方法。如图2所示,该方法包括:步骤410,以同步方式接收来自上游系统的高并发流量;;步骤420,对接收到的高并发流量进行缓冲;;以及步骤430,以受控的方式向依赖于数据库的系统异步转发所缓冲的高并发流量。
[0028]在一些示例中,还可对以同步方式接收的高并发流量进行合法性校验。校验可包括例如对传入参数进行判空等非法性校验,或也可以包括本领域中常用或本领域技术人员可知的其他合法性校验,本发明不对此进行限制。
[0029]在一些示例中,以同步方式接收来自上游系统的高并发流量包括:接收由上游系统通过调用服务的方式发送的高并发流量,其中,上游系统调用的服务内部逻辑是内存操作。
[0030]此外,同步端200执行的其他一些操作,例如数据合法性校验的操作也可以是内存操作。本发明所采用的内存操作的方式实现简单快捷,即使在上游系统传送的数据流量很大时,也可保证同步服务的高并发性能和吞吐量,亦即,可以应对来自上游系统的高并发和大流量。在本发明的一些示例中,所有执行的逻辑操作都可以是内存操作,通过执行内存操作提高了同步端200的操作性能。
[0031]可根据是否通过合法性校验来对以同步方式接收的高并发流量进行处理。例如,在一些示例中,将合法性校验通过的数据存放消息队列中;以及将合法性校验未通过的数据分布式地存放分布式存储器中。
[0032]在一些示例中,上述的消息队列和/或分布式存储器支持水平扩容。
[0033]根据本发明实施例的处理高并发
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1