一种适用于大型分布式系统提高响应速度的方法技术方案

技术编号:17974357 阅读:234 留言:0更新日期:2018-05-16 13:56
本发明专利技术涉及分布式系统开发技术领域,特别是指一种适用于大型分布式系统提高响应速度的方法。本发明专利技术所述的方法是服务器依赖的后台服务运行多个副本,先将服务请求由其中某个副本进行响应;如果在设定的等待时间没有结果返回,则由另外的副本对服务进行响应;最后分布式系统的服务端向前端返回结果。本发明专利技术运用重复发送请求和取消请求的方法,能在很大程度上改善延时的长尾效应,提高分布式系统的响应速度,同时并未增加太多开销;可以用于大型分布式系统服务响应方式的控制。

【技术实现步骤摘要】
一种适用于大型分布式系统提高响应速度的方法
本专利技术涉及分布式系统开发
,特别是指一种适用于大型分布式系统提高响应速度的方法。
技术介绍
随着分布式应用的发展,分布式系统的规模不断提高,而用户对体验的要求逐步提高,在大型分布式系统中处理用户的一次请求需要返回丰富的信息,单一的服务调用已经不能满足需求;通常一个请求的处理需要多个子系统提供的服务参与其中,而同一个服务调用的响应时间有时候长有时候短,由于系统的复杂性提升,响应时间长度是无法预测的,这种现象就是长尾现象,会导致整体用户体验的下降,目前一般采用增加服务占用资源的方式来提高响应速度,在云的环境下,一般步骤如下:1、对每个应用的负载进行检测;2、发现某个应用的负载较高时,把同一物理机下的其他虚拟机迁移到其他物理机上。上述方法通过迁移的方式腾出资源提高响应速度的目的,但是存在以下问题:1、可能并不能起作用,网络负载高导致的响应速度低通过执行上述方法并不能解决,反而由于迁移导致网络拥堵进一步加剧;2、只能短时间内提高单一服务的响应速度,但是对于分布式系统整体而言,把低负载的虚拟机迁移到其他物理机,也会降低其他服务的响应速度;因此,需要设计一种无需增加太多开销提高分布式系统的响应速度的方法。
技术实现思路
本专利技术解决的技术问题在于提出一种适用于大型分布式系统提高响应速度的方法。本专利技术解决上述技术问题的技术方案是:所述的方法是服务器依赖的后台服务运行多个副本,先将服务请求由其中某个副本进行响应;如果在设定的等待时间没有结果返回,则由另外的副本对服务进行响应。所述的方法具体包括以下步骤:步骤1:分布式系统的服务器端依赖的后台服务运行多个副本,并给每个副本提供一个编号,供服务端随机调用;步骤2:分布式系统的服务端接收到前端的请求以后,根据分配算法选择一个依赖的后台服务的副本N,向其发送调用请求,并记录调用的副本地址A,同时记录调用请求的发起时间T1;步骤3:分布式系统的服务端定时检查副本N是否返回结果,如果没有,那么记录当前时间T2,并计算调用请求的已逝去时间T=T2-T1,否则,直接执行步骤6;步骤4:如果T小于预定的等待时间阈值T0,那么执行步骤3,继续执行定时检查;否则,分布式系统服务端再随机选择后台服务的另外一个副本N0,向此副本发送相同的请求,请求中包含上一个请求发往的副本的地址A,同时记录调用的副本地址A0;步骤5:如果副本N0的后台服务早于副本N的后台服务返回结果,那么直接由副本N0根据其请求中的地址A通知副本N停止后台服务;否则由分布式系统的服务端根据记录的地址A0通知副本N0停止后台服务;步骤6:分布式系统的服务端向前端返回结果。所述根据分配算法是负载均衡的算法,包括:Round-Robin算法。所述的步骤6中,返回结果是返回副本N返回的结果或副本N0返回的结果,如果两者在规定时间内均为返回结果,则返回服务不可用的信息。所述等待时间阈值T0指的是由用户指定的最长等待时间,可由用户根据分布式系统的类型确定的超过用户等待心理预期的时间。所述分布式系统的服务器端依赖的后台服务是可重复执行请求的集群服务,每个后台服务运行有多个相同的副本;所述的副本是可以由服务端指定调用的服务副本。本专利技术的方法能产生如下的有益效果:本专利技术运用重复发送请求和取消请求的方法,能在很大程度上改善延时的长尾效应,提高分布式系统的响应速度,同时并未增加太多开销。附图说明下面结合附图对本专利技术进一步说明:图1为本专利技术的流程图。具体实施方式如图1所示,本专利技术的基本步骤是:步骤1:分布式系统的服务器端依赖的后台服务运行多个副本,并给每个副本提供一个编号,供服务端随机调用;步骤2:分布式系统的服务端接收到前端的请求以后,根据分配算法选择一个依赖的后台服务的副本N,向其发送调用请求,并记录调用的副本地址A,同时记录调用请求的发起时间T1;步骤3:分布式系统的服务端定时检查副本N是否返回结果,如果没有,那么记录当前时间T2,并计算调用请求的已逝去时间T=T2-T1,否则,直接执行步骤6;步骤4:如果T小于预定的等待时间阈值T0,那么执行步骤3,继续执行定时检查;否则,分布式系统服务端再随机选择后台服务的另外一个副本N0,向此副本发送相同的请求,请求中包含上一个请求发往的副本的地址A,同时记录调用的副本地址A0;步骤5:如果副本N0的后台服务早于副本N的后台服务返回结果,那么直接由副本N0根据其请求中的地址A通知副本N停止后台服务;否则由分布式系统的服务端根据记录的地址A0通知副本N0停止后台服务;步骤6:分布式系统的服务端向前端返回结果。下面以Scala下的akka框架为例,描述一种在其上实现本专利技术的方法。首先定义一个正常的Web请求响应流程本文档来自技高网...
一种适用于大型分布式系统提高响应速度的方法

【技术保护点】
一种适用于大型分布式系统提高响应速度的方法,其特征在于,所述的方法是服务器依赖的后台服务运行多个副本,先将服务请求由其中某个副本进行响应;如果在设定的等待时间没有结果返回,则由另外的副本对服务进行响应。

【技术特征摘要】
1.一种适用于大型分布式系统提高响应速度的方法,其特征在于,所述的方法是服务器依赖的后台服务运行多个副本,先将服务请求由其中某个副本进行响应;如果在设定的等待时间没有结果返回,则由另外的副本对服务进行响应。2.根据权利要求1所述的方法,其特征在于:所述的方法具体包括以下步骤:步骤1:分布式系统的服务器端依赖的后台服务运行多个副本,并给每个副本提供一个编号,供服务端随机调用;步骤2:分布式系统的服务端接收到前端的请求以后,根据分配算法选择一个依赖的后台服务的副本N,向其发送调用请求,并记录调用的副本地址A,同时记录调用请求的发起时间T1;步骤3:分布式系统的服务端定时检查副本N是否返回结果,如果没有,那么记录当前时间T2,并计算调用请求的已逝去时间T=T2-T1,否则,直接执行步骤6;步骤4:如果T小于预定的等待时间阈值T0,那么执行步骤3,继续执行定时检查;否则,分布式系统服务端再随机选择后台服务的另外一个副本N0,向此副本发送相同的请求,请求中包含上一个请求发往的副本的地址A,同时记录调用的副本地址A0;步骤5:如果副本N0的后台服务早于副本N的后台服务返回结果,那么直接由副本N0根据其请求中的地址A通知副本N停止后台服务;否则由分布式系统的服务端根据记...

【专利技术属性】
技术研发人员:莫展鹏季统凯
申请(专利权)人:国云科技股份有限公司
类型:发明
国别省市:广东,44

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

1