CN106559450A - 一种动态选择后端服务的方法和装置 - Google Patents
一种动态选择后端服务的方法和装置 Download PDFInfo
- Publication number
- CN106559450A CN106559450A CN201510628620.4A CN201510628620A CN106559450A CN 106559450 A CN106559450 A CN 106559450A CN 201510628620 A CN201510628620 A CN 201510628620A CN 106559450 A CN106559450 A CN 106559450A
- Authority
- CN
- China
- Prior art keywords
- end services
- access
- routing table
- information
- service routing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种动态选择后端服务的方法和装置,该方法包括以下步骤:负载代理接收来自客户端的后端服务信息获取请求,根据服务路由表中记录的后端服务的访问次数和访问延迟,从所述服务路由表中选择后端服务信息,并将选择的后端服务信息返回给所述客户端;所述负载代理接收来自所述客户端的访问结果,根据所述访问结果更新所述服务路由表。本发明根据各个后端服务在预设时长内的访问次数和平均访问延迟,为客户端的请求动态选择后端服务,能够实现后端服务的负载均衡,并降低客户端对后端服务的访问延迟。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种动态选择后端服务的方法和装置。
背景技术
在互联网服务应用中,请求的分布与业务的使用频率之间的关联性非常大。例如,有些服务具有明显的节日效应,有些服务则具有突发的运营需求,上述因素都会导致服务的请求量在一段时间内剧增,并在一段时间之后恢复正常。在请求量剧增的是时间内,客户端对后端服务的访问延迟较大,严重降低用户的使用体验。
发明内容
本发明提供了一种动态选择后端服务的方法和装置,以解决现有技术中访问延迟较大的缺陷。
本发明提供了一种动态选择后端服务的方法,包括以下步骤:
负载代理接收来自客户端的后端服务信息获取请求,根据服务路由表中记录的后端服务的访问次数和访问延迟,从所述服务路由表中选择后端服务信息,并将选择的后端服务信息返回给所述客户端;
所述负载代理接收来自所述客户端的访问结果,根据所述访问结果更新所述服务路由表。
本发明还提供了一种动态选择后端服务的装置,包括:
第一接收模块,用于接收来自客户端的后端服务信息获取请求;
选择模块,用于根据服务路由表中记录的后端服务的访问次数和访问延迟,从所述服务路由表中选择后端服务信息;
发送模块,用于将所述选择模块选择的后端服务信息返回给所述客户端;
第二接收模块,用于接收来自所述客户端的访问结果;
更新模块,用于根据所述第二接收模块接收到的所述访问结果更新所述服务路由表。
本发明根据各个后端服务在预设时长内的访问次数和平均访问延迟,为客户端的请求动态选择后端服务,能够实现后端服务的负载均衡,并降低客户端对后端服务的访问延迟。
附图说明
图1为本发明实施例中的一种动态选择后端服务的系统架构图;
图2为本发明实施例中的一种动态选择后端服务的方法流程图;
图3为本发明实施例中的一种动态选择后端服务的装置结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种动态选择后端服务的方法,应用于包括客户端、负载代理以及多个后端服务的系统中,该系统的架构如图1所示,客户端分别与负载代理以及多个后端服务连接,负载代理接收来自客户端的后端服务信息获取请求,根据服务路由表中记录的后端服务的访问次数和访问延迟,从服务路由表中选择后端服务信息,并将选择的后端服务信息返回给客户端;客户端根据接收到的后端服务信息,访问对应的后端服务,得到访问结果,并将访问结果上报给负载代理;负载代理接收来自客户端的访问结果,根据访问结果更新服务路由表。
基于上述系统架构,本发明实施例中的动态选择后端服务的方法如图2所示,包括以下步骤:
步骤101,客户端判断是否在预设时长内获取过后端服务信息,如果是,则执行步骤102,否则,执行步骤103。
步骤102,客户端根据获取过的后端服务信息,访问对应的后端服务,得到访问结果,并执行步骤106。
步骤103,客户端向负载代理发送后端服务信息获取请求。
步骤104,负载代理根据服务路由表中记录的后端服务的访问次数和访问延迟,从服务路由表中选择后端服务信息,并将选择的后端服务信息返回给客户端。
具体地,负载代理可以根据后端服务的访问次数和访问延迟,对服务路由表中的后端服务信息进行排序,并根据排序结果从服务路由表中选择后端服务信息,将选择的后端服务信息返回给客户端。
其中,后端服务的访问次数可以是后端服务在预设时长内的访问次数,后端服务的访问延迟可以是后端服务在预设时长内的平均访问延迟,后端服务信息用于标识后端服务,可以是后端服务名称,也可以是后端服务标识,还可以是与后端服务相关的其他信息。
本实施例中,服务路由表中记录有多个后端服务信息以及与各个后端服务信息对应的后端服务在预设时长内的访问次数和平均访问延迟。相应地,负载代理可以根据后端服务在预设时长内的平均访问延迟,对服务路由表中的后端服务信息进行排序,并选择平均访问延迟最小的后端服务对应的后端服务信息。如果存在多个平均访问延迟最小的后端服务,则根据后端服务在预设时长内的访问次数,对上述多个平均访问延迟最小的后端服务进行排序,并选择访问次数最小的后端服务对应的后端服务信息。
优选地,预设时长为前一分钟。
例如,本发明实施例中的服务路由表,如表1所示:
表1 服务路由表
后端服务名称 | 前一分钟内的访问次数 | 前一分钟内的平均访问延迟 |
A | 59 | 1000ms |
B | 59 | 900ms |
C | 60 | 800ms |
D | 70 | 800ms |
负载代理根据后端服务在前一分钟内的平均访问延迟,按照从小到大的顺序,对服务路由表中的后端服务名称进行排序,得到的顺序为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在前一分钟内的访问次数和平均访问延迟。
本发明实施例通过负载代理根据各个后端服务在预设时长内的访问次数和平均访问延迟,为客户端的请求动态选择后端服务,能够实现后端服务的负载均衡,并降低客户端对后端服务的访问延迟。此外,负载代理支持动态调整后端服务数量,不需要停止服务,不会影响服务端和客户端的链路以及访问性能,也不存在接入服务的瓶颈。
基于上述动态选择后端服务的方法,本发明实施例提供了一种动态选择后端服务的装置,如图3所示,包括:
第一接收模块201,用于接收来自客户端的后端服务信息获取请求;
选择模块202,用于根据服务路由表中记录的后端服务的访问次数和访问延迟,从所述服务路由表中选择后端服务信息;
具体地,上述选择模块202,具体用于根据所述后端服务的访问次数和访问延迟,对所述服务路由表中的后端服务信息进行排序,并根据排序结果从所述服务路由表中选择后端服务信息。
其中,服务路由表中记录有多个后端服务信息以及与各个后端服务信息对应的后端服务在预设时长内的访问次数和平均访问延迟;
相应地,上述选择模块202,具体用于根据所述后端服务在预设时长内的平均访问延迟,对所述服务路由表中的后端服务信息进行排序,并选择平均访问延迟最小的后端服务对应的后端服务信息;如果存在多个平均访问延迟最小的后端服务,则根据后端服务在预设时长内的访问次数,对多个平均访问延迟最小的后端服务进行排序,并选择访问次数最小的后端服务对应的后端服务信息。
发送模块203,用于将选择模块202选择的后端服务信息返回给所述客户端;
第二接收模块204,用于接收来自客户端的访问结果;
更新模块205,用于根据第二接收模块204接收到的所述访问结果更新所述服务路由表。
具体地,上述更新模块205,具体用于从所述访问结果中获取后端服务信息和访问延迟,根据获取到的后端服务信息和访问延迟更新对应的后端服务在预设时长内的访问次数和平均访问延迟,且每隔预设时长,使用后端服务在预设时长内的访问次数和平均访问延迟更新所述服务路由表。
进一步地,上述装置,还包括:
设置模块206,用于每隔预设时长添加定时任务,将所述服务路由表中的各个后端服务信息对应的后端服务的访问次数和平均访问延迟分别设置为第一预设值和第二预设值。
进一步地,上述装置,还包括:
添加模块207,用于在添加后端服务后,在所述服务路由表添加对应的后端服务信息,并初始化所述后端服务在预设时长内的访问次数和平均访问延迟。
进一步地,上述装置,还包括:
删除模块208,用于在移除后端服务后,从所述服务路由表中删除对应的后端服务信息以及所述后端服务在前一分钟内的访问次数和平均访问延迟。
本发明实施例根据各个后端服务在预设时长内的访问次数和平均访问延迟,为客户端的请求动态选择后端服务,能够实现后端服务的负载均衡,并降低客户端对后端服务的访问延迟。此外,支持动态调整后端服务数量,不需要停止服务,不会影响服务端和客户端的链路以及访问性能,也不存在接入服务的瓶颈。
结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (14)
1.一种动态选择后端服务的方法,其特征在于,包括以下步骤:
负载代理接收来自客户端的后端服务信息获取请求,根据服务路由表中记录的后端服务的访问次数和访问延迟,从所述服务路由表中选择后端服务信息,并将选择的后端服务信息返回给所述客户端;
所述负载代理接收来自所述客户端的访问结果,根据所述访问结果更新所述服务路由表。
2.如权利要求1所述的方法,其特征在于,所述负载代理根据服务路由表中记录的后端服务的访问次数和访问延迟,从所述服务路由表中选择后端服务信息,具体为:
所述负载代理根据所述后端服务的访问次数和访问延迟,对所述服务路由表中的后端服务信息进行排序,并根据排序结果从所述服务路由表中选择后端服务信息。
3.如权利要求2所述的方法,其特征在于,所述服务路由表中记录有多个后端服务信息以及与各个后端服务信息对应的后端服务在预设时长内的访问次数和平均访问延迟;
所述负载代理根据所述后端服务的访问次数和访问延迟,对所述服务路由表中的后端服务信息进行排序,并根据排序结果从所述服务路由表中选择后端服务信息,具体为:
所述负载代理根据所述后端服务在预设时长内的平均访问延迟,对所述服务路由表中的后端服务信息进行排序,并选择平均访问延迟最小的后端服务对应的后端服务信息;如果存在多个平均访问延迟最小的后端服务,则根据后端服务在预设时长内的访问次数,对多个平均访问延迟最小的后端服务进行排序,并选择访问次数最小的后端服务对应的后端服务信息。
4.如权利要求1所述的方法,其特征在于,所述负载代理根据所述访问结果更新所述服务路由表,具体为:
所述负载代理从所述访问结果中获取后端服务信息和访问延迟,根据获取到的后端服务信息和访问延迟更新对应的后端服务在预设时长内的访问次数和平均访问延迟,且每隔预设时长,使用后端服务在预设时长内的访问次数和平均访问延迟更新所述服务路由表。
5.如权利要求4所述的方法,其特征在于,所述负载代理从所述访问结果中获取后端服务信息和访问延迟,根据获取到的后端服务信息和访问延迟更新对应的后端服务在预设时长内的访问次数和平均访问延迟之前,还包括:
所述负载代理每隔预设时长添加定时任务,将所述服务路由表中的各个后端服务信息对应的后端服务的访问次数和平均访问延迟分别设置为第一预设值和第二预设值。
6.如权利要求1所述的方法,其特征在于,还包括:
当添加后端服务后,所述负载代理在所述服务路由表添加对应的后端服务信息,并初始化所述后端服务在预设时长内的访问次数和平均访问延迟。
7.如权利要求1所述的方法,其特征在于,还包括:
当移除后端服务后,所述负载代理从所述服务路由表中删除对应的后端服务信息以及所述后端服务在前一分钟内的访问次数和平均访问延迟。
8.一种动态选择后端服务的装置,其特征在于,包括:
第一接收模块,用于接收来自客户端的后端服务信息获取请求;
选择模块,用于根据服务路由表中记录的后端服务的访问次数和访问延迟,从所述服务路由表中选择后端服务信息;
发送模块,用于将所述选择模块选择的后端服务信息返回给所述客户端;
第二接收模块,用于接收来自所述客户端的访问结果;
更新模块,用于根据所述第二接收模块接收到的所述访问结果更新所述服务路由表。
9.如权利要求8所述的装置,其特征在于,
所述选择模块,具体用于根据所述后端服务的访问次数和访问延迟,对所述服务路由表中的后端服务信息进行排序,并根据排序结果从所述服务路由表中选择后端服务信息。
10.如权利要求9所述的装置,其特征在于,所述服务路由表中记录有多个后端服务信息以及与各个后端服务信息对应的后端服务在预设时长内的访问次数和平均访问延迟;
所述选择模块,具体用于根据所述后端服务在预设时长内的平均访问延迟,对所述服务路由表中的后端服务信息进行排序,并选择平均访问延迟最小的后端服务对应的后端服务信息;如果存在多个平均访问延迟最小的后端服务,则根据后端服务在预设时长内的访问次数,对多个平均访问延迟最小的后端服务进行排序,并选择访问次数最小的后端服务对应的后端服务信息。
11.如权利要求8所述的装置,其特征在于,
所述更新模块,具体用于从所述访问结果中获取后端服务信息和访问延迟,根据获取到的后端服务信息和访问延迟更新对应的后端服务在预设时长内的访问次数和平均访问延迟,且每隔预设时长,使用后端服务在预设时长内的访问次数和平均访问延迟更新所述服务路由表。
12.如权利要求11所述的装置,其特征在于,还包括:
设置模块,用于每隔预设时长添加定时任务,将所述服务路由表中的各个后端服务信息对应的后端服务的访问次数和平均访问延迟分别设置为第一预设值和第二预设值。
13.如权利要求8所述的装置,其特征在于,还包括:
添加模块,用于在添加后端服务后,在所述服务路由表添加对应的后端服务信息,并初始化所述后端服务在预设时长内的访问次数和平均访问延迟。
14.如权利要求8所述的装置,其特征在于,还包括:
删除模块,用于在移除后端服务后,从所述服务路由表中删除对应的后端服务信息以及所述后端服务在前一分钟内的访问次数和平均访问延迟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510628620.4A CN106559450B (zh) | 2015-09-28 | 2015-09-28 | 一种动态选择后端服务的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510628620.4A CN106559450B (zh) | 2015-09-28 | 2015-09-28 | 一种动态选择后端服务的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106559450A true CN106559450A (zh) | 2017-04-05 |
CN106559450B CN106559450B (zh) | 2019-06-25 |
Family
ID=58416649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510628620.4A Active CN106559450B (zh) | 2015-09-28 | 2015-09-28 | 一种动态选择后端服务的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106559450B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112165431A (zh) * | 2020-06-09 | 2021-01-01 | 上海金融期货信息技术有限公司 | 一种低延时微服务路由管理系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020161846A1 (en) * | 2001-01-29 | 2002-10-31 | Ulrich Thomas R. | Data path controller architecture |
CN102340437A (zh) * | 2010-07-15 | 2012-02-01 | 腾讯数码(天津)有限公司 | 一种网络容错的方法和装置 |
CN102611735A (zh) * | 2011-12-21 | 2012-07-25 | 奇智软件(北京)有限公司 | 一种应用服务的负载均衡方法及系统 |
CN103166870A (zh) * | 2011-12-13 | 2013-06-19 | 百度在线网络技术(北京)有限公司 | 负载均衡集群系统及采用其提供服务的方法 |
CN103607424A (zh) * | 2013-10-24 | 2014-02-26 | 北京奇虎科技有限公司 | 一种服务器连接方法及服务器系统 |
CN103647811A (zh) * | 2013-11-28 | 2014-03-19 | 北京奇虎科技有限公司 | 一种实现应用访问后台服务的方法和装置 |
-
2015
- 2015-09-28 CN CN201510628620.4A patent/CN106559450B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020161846A1 (en) * | 2001-01-29 | 2002-10-31 | Ulrich Thomas R. | Data path controller architecture |
CN102340437A (zh) * | 2010-07-15 | 2012-02-01 | 腾讯数码(天津)有限公司 | 一种网络容错的方法和装置 |
CN103166870A (zh) * | 2011-12-13 | 2013-06-19 | 百度在线网络技术(北京)有限公司 | 负载均衡集群系统及采用其提供服务的方法 |
CN102611735A (zh) * | 2011-12-21 | 2012-07-25 | 奇智软件(北京)有限公司 | 一种应用服务的负载均衡方法及系统 |
CN103607424A (zh) * | 2013-10-24 | 2014-02-26 | 北京奇虎科技有限公司 | 一种服务器连接方法及服务器系统 |
CN103647811A (zh) * | 2013-11-28 | 2014-03-19 | 北京奇虎科技有限公司 | 一种实现应用访问后台服务的方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112165431A (zh) * | 2020-06-09 | 2021-01-01 | 上海金融期货信息技术有限公司 | 一种低延时微服务路由管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106559450B (zh) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101815033B (zh) | 负载均衡的方法、设备及系统 | |
CN106899680A (zh) | 多区块链的分片处理方法和装置 | |
CN101119359A (zh) | 基于策略的服务负载均衡方法 | |
CN106953940A (zh) | Dns服务器及配置加载方法、网络系统、域名解析方法及系统 | |
CN103607424B (zh) | 一种服务器连接方法及服务器系统 | |
CN109981702B (zh) | 一种文件存储方法及系统 | |
CN108319598B (zh) | 数据缓存方法、装置和系统 | |
CN107404481B (zh) | 用户信息识别方法及装置 | |
CN102868770B (zh) | 一种分配接口的方法、设备及系统 | |
CN107179995A (zh) | 一种计算机网络应用程序的性能测试方法 | |
CN112016030B (zh) | 消息推送的方法、装置、服务器和计算机存储介质 | |
CN112367564A (zh) | 视频播放参数确定方法及其设备 | |
CN109150936A (zh) | 一种分布式集群中会话对象Session的共享方法及装置 | |
CN106357818A (zh) | 一种消息推送方法和装置 | |
CN108270753B (zh) | 注销用户账号的方法及装置 | |
CN110401552A (zh) | 一种cdn业务自动调优方法及装置 | |
CN106326280A (zh) | 数据处理方法、装置及系统 | |
CN101635686A (zh) | 资源管理方法 | |
CN106559450A (zh) | 一种动态选择后端服务的方法和装置 | |
CN110290513B (zh) | 一种重入网用户的识别方法和系统 | |
CN103795788B (zh) | 即时通讯服务器的负载均衡方法和负载均衡服务器 | |
CN107329832A (zh) | 一种数据接收方法及装置 | |
CN105897828A (zh) | 节点缓存机制的确定方法及系统 | |
CN106302020B (zh) | 网络带宽统计方法及装置 | |
CN108156054A (zh) | 云桌面性能的测试方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |