[发明专利]一种高并发系统中控制并发数的装置和方法有效
申请号: | 201210122889.1 | 申请日: | 2012-04-24 |
公开(公告)号: | CN103379040A | 公开(公告)日: | 2013-10-30 |
发明(设计)人: | 谢中富;刘志勇;叶江华 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | H04L12/801 | 分类号: | H04L12/801;H04L12/863 |
代理公司: | 杭州天勤知识产权代理有限公司 33224 | 代理人: | 杨天娇 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 并发 系统 控制 装置 方法 | ||
技术领域
本申请涉及计算机网络技术领域,尤其涉及一种高并发系统中控制并发数的装置和方法。
背景技术
随着互联网业务的不断丰富,网站相关的技术得到了飞速的发展,大型网站不断涌现。大型网站,比如门户网站,经常需要面对高负载和高并发问题。目前对于高并发下多系统间的并发数控制,一直是各大系统特别是秒杀系统首要考虑的因素之一,这直接影响到系统的可用性和网站的用户体验。
面对这样的问题,常用的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器等,以及采用HTML静态化,图片服务器分离,数据库集群和库表散列,缓存,镜像,负载均衡等技术手段。但是对于突然增加的高并发情况,如秒杀系统,仍然是无能为力,网站瘫痪的例子比较常见。为应对这种情况,目前的解决方案主要是,前端应用系统与各个业务支撑系统根据系统自身的处理能力,以系统维度独立控制并发数,当并发数超过预设的值时直接拒绝后来的服务请求。这种方法存在的缺点是:
1、不同服务之间相互影响,服务之间存在高耦合;
在一个系统上有多个不同服务的情况下,由于并发数控制是按系统维度,当某一个服务并发很高达到系统的并发数上限时,该系统将拒绝访问系统内的所有服务,虽然该系统上的其它服务仍有足够的处理能力,仍然会被拒绝访问,导致不可用。
2、会产生无用的网络开销,占用系统的通信资源;
当提供服务的系统处于非常忙碌的状态,达到并发数上限时,服务调用系统并没有得到反馈,仍不断地调用所依赖的服务,产生大量无用的网络开销。由于调用方得到失败的结果,会在一段时间内重试,大量重试请求会占用系统的通信资源,从而影响其它服务的处理。
3、不能避免系统出现宕机的情况;
当第二种的情况长时间出现,随着前端用户持续不断地操作,必然会触发整套系统链中瓶颈出现,如网络链接数耗光,最终导致雪崩响应,系统宕机。
公开号为CN102291324A的中国发明申请公开了一种高并发业务请求处理方法,通过设置分组消息队列,首先将业务请求按照目的IP进行分组,然后将同组的业务请求合并成网络请求后再发送给服务器,减少了请求次数,但是其服务器的响应仍然是逐个响应。该方案不能按照服务区别响应,同样服务调用系统并没有得到反馈,仍不断地调用所依赖的服务。
公开号为CN101815338A的中国发明申请公开了一种控制并发呼叫量的装置和方法,具有根据呼叫特征划分的各个并发呼叫量对应的变量,并判断所述变量不小于设定的阈值时,释放当前呼叫。但是该方法按照呼叫特征优先级来响应,当一种特征呼叫处于高并发状态时,仍然要影响其他特征的服务。
因此,如何有效利用现有设备,有效控制高并发数,降低系统宕机的风险,仍然是需要解决的技术问题。
发明内容
本申请的目的是有效控制高并发系统中的并发数,防止系统在高并发冲击下的资源耗尽,进而宕机。
一种高并发系统中控制并发数的装置,包括:
至少一个流量阀门,所述流量阀门为双向流量阀门,设置有根据服务名称和请求处理类型区分的并发数上限,用于判断接收的服务请求对应的并发数是否耗尽,并进行处置;
流量阀门配置器,用于按服务名称和请求处理类型配置所述流量阀门对应该服务名称和请求处理类型的并发数上限。
进一步地,所述流量阀门包括:
缓存单元,用于对服务请求进行排队;
判断单元,用于判断接收的服务请求对应的并发数是否耗尽;
处理单元,用于根据判断结果,对所述服务请求进行处置,若接收的服务请求对应的并发数耗尽则将服务请求放入缓存单元排队,否则允许服务请求通过。
进一步地,所述的流量阀门缓存单元包括::
超时处理单元,用于判断等待处理的服务请求是否等待超时,若超时则返回请求超过并发数上限信息,并删除所述服务请求,否则服务请求继续等待流量阀门处理。
所述请求处理类型包括调用服务和接收服务。对于同一个服务名称的服务请求,所述高并发系统中流量阀门设置的调用服务并发数上限要小于等于接收服务并发数上限。
一种高并发系统中控制并发数的方法,应用于包括子系统为前端应用系统和至少一个业务支撑系统的高并发系统,包括以下步骤:
根据各子系统包括的服务配置各子系统上的流量阀门,其中,所述流量阀门为双向流量阀门,设置有根据服务名称和请求处理类型区分的并发数上限;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210122889.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种带有棘轮装置的吊重装置
- 下一篇:塔式起重机起重臂吊绳式拉杆