一种动态选择后端服务的方法和装置制造方法及图纸

技术编号:15053850 阅读:71 留言:0更新日期:2017-04-06 00:07
本发明专利技术公开了一种动态选择后端服务的方法和装置,该方法包括以下步骤:负载代理接收来自客户端的后端服务信息获取请求,根据服务路由表中记录的后端服务的访问次数和访问延迟,从所述服务路由表中选择后端服务信息,并将选择的后端服务信息返回给所述客户端;所述负载代理接收来自所述客户端的访问结果,根据所述访问结果更新所述服务路由表。本发明专利技术根据各个后端服务在预设时长内的访问次数和平均访问延迟,为客户端的请求动态选择后端服务,能够实现后端服务的负载均衡,并降低客户端对后端服务的访问延迟。

【技术实现步骤摘要】

本专利技术涉及通信
,特别涉及一种动态选择后端服务的方法和装置
技术介绍
在互联网服务应用中,请求的分布与业务的使用频率之间的关联性非常大。例如,有些服务具有明显的节日效应,有些服务则具有突发的运营需求,上述因素都会导致服务的请求量在一段时间内剧增,并在一段时间之后恢复正常。在请求量剧增的是时间内,客户端对后端服务的访问延迟较大,严重降低用户的使用体验。
技术实现思路
本专利技术提供了一种动态选择后端服务的方法和装置,以解决现有技术中访问延迟较大的缺陷。本专利技术提供了一种动态选择后端服务的方法,包括以下步骤:负载代理接收来自客户端的后端服务信息获取请求,根据服务路由表中记录的后端服务的访问次数和访问延迟,从所述服务路由表中选择后端服务信息,并将选择的后端服务信息返回给所述客户端;所述负载代理接收来自所述客户端的访问结果,根据所述访问结果更新所述服务路由表。本专利技术还提供了一种动态选择后端服务的装置,包括:第一接收模块,用于接收来自客户端的后端服务信息获取请求;选择模块,用于根据服务路由表中记录的后端服务的访问次数和访问延迟,从所述服务路由表中选择后端服务信息;发送模块,用于将所述选择模块选择的后端服务信息返回给所述客户端;第二接收模块,用于接收来自所述客户端的访问结果;更新模块,用于根据所述第二接收模块接收到的所述访问结果更新所述服务路由表。本专利技术根据各个后端服务在预设时长内的访问次数和平均访问延迟,为客户端的请求动态选择后端服务,能够实现后端服务的负载均衡,并降低客户端对后端服务的访问延迟。附图说明图1为本专利技术实施例中的一种动态选择后端服务的系统架构图;图2为本专利技术实施例中的一种动态选择后端服务的方法流程图;图3为本专利技术实施例中的一种动态选择后端服务的装置结构图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例提供了一种动态选择后端服务的方法,应用于包括客户端、负载代理以及多个后端服务的系统中,该系统的架构如图1所示,客户端分别与负载代理以及多个后端服务连接,负载代理接收来自客户端的后端服务信息获取请求,根据服务路由表中记录的后端服务的访问次数和访问延迟,从服务路由表中选择后端服务信息,并将选择的后端服务信息返回给客户端;客户端根据接收到的后端服务信息,访问对应的后端服务,得到访问结果,并将访问结果上报给负载代理;负载代理接收来自客户端的访问结果,根据访问结果更新服务路由表。基于上述系统架构,本专利技术实施例中的动态选择后端服务的方法如图2所示,包括以下步骤:步骤101,客户端判断是否在预设时长内获取过后端服务信息,如果是,则执行步骤102,否则,执行步骤103。步骤102,客户端根据获取过的后端服务信息,访问对应的后端服务,得到访问结果,并执行步骤106。步骤103,客户端向负载代理发送后端服务信息获取请求。步骤104,负载代理根据服务路由表中记录的后端服务的访问次数和访问延迟,从服务路由表中选择后端服务信息,并将选择的后端服务信息返回给客户端。具体地,负载代理可以根据后端服务的访问次数和访问延迟,对服务路由表中的后端服务信息进行排序,并根据排序结果从服务路由表中选择后端服务信息,将选择的后端服务信息返回给客户端。其中,后端服务的访问次数可以是后端服务在预设时长内的访问次数,后端服务的访问延迟可以是后端服务在预设时长内的平均访问延迟,后端服务信息用于标识后端服务,可以是后端服务名称,也可以是后端服务标识,还可以是与后端服务相关的其他信息。本实施例中,服务路由表中记录有多个后端服务信息以及与各个后端服务信息对应的后端服务在预设时长内的访问次数和平均访问延迟。相应地,负载代理可以根据后端服务在预设时长内的平均访问延迟,对服务路由表中的后端服务信息进行排序,并选择平均访问延迟最小的后端服务对应的后端服务信息。如果存在多个平均访问延迟最小的后端服务,则根据后端服务在预设时长内的访问次数,对上述多个平均访问延迟最小的后端服务进行排序,并选择访问次数最小的后端服务对应的后端服务信息。优选地,预设时长为前一分钟。例如,本专利技术实施例中的服务路由表,如表1所示:表1服务路由表后端服务名称前一分钟内的访问次数前一分钟内的平均访问延迟A591000msB59900msC60800msD70800ms负载代理根据后端服务在前一分钟内的平均访问延迟,按照从小到大的顺序,对服务路由表中的后端服务名称进行排序,得到的顺序为D、C、B、A;由于D和C对应的平均访问延迟相同,则根据后端服务在前一分钟内的的访问次数,按照从小到大的顺序,对D和C进行排序,得到的顺序为C、D,则选择C返回给客户端。步骤105,客户端根据接收到的后端服务信息,访问对应的后端服务,得到访问结果。步骤106,客户端对访问结果进行判断,如果是访问失败,则返回步骤103;如果是访问成功,则执行步骤107。步骤107,客户端将访问结果上报给负载代理。步骤108,负载代理根据接收到的访问结果更新服务路由表。具体地,负载代理可以从接收到的访问结果中获取后端服务信息和访问延迟,根据获取到的后端服务信息和访问延迟更新对应的后端服务在预设时长内的访问次数和平均访问延迟,且每隔预设时长,使用后端服务在预设时长内的访问次数和平均访问延迟更新服务路由表。本实施例中,负载代理每隔预设时长添加定时任务,将服务路由表中的各个后端服务信息对应的后端服务的访问次数和平均访问延迟分别设置为第一预设值和第二预设值。负载代理接收到客户端上报的访问结果后,从访问结果中获取后端服务信息和访问延迟,根据获取到的后端服务信息和访问延迟更新对应的后端服务在预设时长内的访问次数和平均访问延迟,且每隔预设时长,使用后端服务在预设时长内的访问次数和平均访问延迟替换服务路由表中的内容。优选地,预设时长为前一分钟。以表1所示的服务路由表为例,负载代理每隔一分钟添加定时任务,将后端服务A、B、C和D在前一分钟内的访问次数N均设置为1,后端服务A、B、C和D在前一分钟内的平均访问延迟均设置为0。负载代理接收到客户端上报的访问结果后,从访问结果中获取后端服务名称A和访问延迟t,将后端服务A在前一分钟内的访问次数更新为N+1,将后端服务A在前一分钟内的平均访问延迟更新为avg’=(avg*N+t)/(N+1)。每隔一分钟,负载代理使用各个后端服务在前一分钟内的访问次数和平均访问延迟替换服务路由表中的内容。需要说明的是,当添加后端服务后,负载代理在服务路由表添加对应的后端服务信息,并初始化后端服务在预设时长内的访问次数和平均访问延迟。例如,当添加后台服务E后,负载代理在服务路由表加入E,并初始化后台服务E在前一分钟内的访问次数N为1,平均访问延迟为0。此外,当移除后端服务后,负载代理从服务路由表中删除对应的后端服务信息以及该后端服务在前一分钟内的访问次数和平均访问延迟。例如,当移除后端服务C后,负载代理从服务路由表中删除C以及后台服务C在前本文档来自技高网...

【技术保护点】
一种动态选择后端服务的方法,其特征在于,包括以下步骤:负载代理接收来自客户端的后端服务信息获取请求,根据服务路由表中记录的后端服务的访问次数和访问延迟,从所述服务路由表中选择后端服务信息,并将选择的后端服务信息返回给所述客户端;所述负载代理接收来自所述客户端的访问结果,根据所述访问结果更新所述服务路由表。

【技术特征摘要】
1.一种动态选择后端服务的方法,其特征在于,包括以下步骤:负载代理接收来自客户端的后端服务信息获取请求,根据服务路由表中记录的后端服务的访问次数和访问延迟,从所述服务路由表中选择后端服务信息,并将选择的后端服务信息返回给所述客户端;所述负载代理接收来自所述客户端的访问结果,根据所述访问结果更新所述服务路由表。2.如权利要求1所述的方法,其特征在于,所述负载代理根据服务路由表中记录的后端服务的访问次数和访问延迟,从所述服务路由表中选择后端服务信息,具体为:所述负载代理根据所述后端服务的访问次数和访问延迟,对所述服务路由表中的后端服务信息进行排序,并根据排序结果从所述服务路由表中选择后端服务信息。3.如权利要求2所述的方法,其特征在于,所述服务路由表中记录有多个后端服务信息以及与各个后端服务信息对应的后端服务在预设时长内的访问次数和平均访问延迟;所述负载代理根据所述后端服务的访问次数和访问延迟,对所述服务路由表中的后端服务信息进行排序,并根据排序结果从所述服务路由表中选择后端服务信息,具体为:所述负载代理根据所述后端服务在预设时长内的平均访问延迟,对所述服务路由表中的后端服务信息进行排序,并选择平均访问延迟最小的后端服务对应的后端服务信息;如果存在多个平均访问延迟最小的后端服务,则根据后端服务在预设时长内的访问次数,对多个平均访问延迟最小的后端服务进行排序,并选择访问次数最小的后端服务对应的后端服务信息。4.如权利要求1所述的方法,其特征在于,所述负载代理根据所述访问结果更新所述服务路由表,具体为:所述负载代理从所述访问结果中获取后端服务信息和访问延迟,根据获取到的后端服务信息和访问延迟更新对应的后端服务在预设时长内的访问次数和平均访问延迟,且每隔预设时长,使用后端服务在预设时长内的访问次数和平均访问延迟更新所述服务路由表。5.如权利要求4所述的方法,其特征在于,所述负载代理从所述访问结果中获取后端服务信息和访问延迟,根据获取到的后端服务信息和访问延迟更新对应的后端服务在预设时长内的访问次数和平均访问延迟之前,还包括:所述负载代理每隔预设时长添加定时任务,将所述服务路由表中的各个后端服务信息对应的后端服务的访问次数和平均访问延迟分别设置为第一预设值和第二预设值。6.如权利要求1所述的方法,其特征在于,还包括:当添加后端服务后,所述负载代理在所述服务路由表添加对应的后端服务信息,并初始化所述后端服务在预设时长内的访问次数和平均访问延迟。7.如权利要...

【专利技术属性】
技术研发人员:谭国富
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1