基于URL的负载均衡方法、装置、计算机存储介质及设备
技术领域
本发明涉及移动通信技术领域,尤其涉及一种基于URL的负载均衡方法、装置、计算机存储介质及设备。
背景技术
URL(Uniform Resource Locator,统一资源定位符)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。URL参数是追加到URL上的一个名称/值对。参数以问号“?”开始并采用name=value的格式。如果存在多个URL参数,则参数之间用一个“&”符隔开。
下面的示例显示带有两个名称/值对的URL参数:
http://server/path/document?name1=value1&name2=value2
URL参数可将用户提供的信息从客户端传递到服务端。当服务端收到请求后,这些携带的参数可被服务端解析并加以利用。
ACS(Auto-Configuration Server,自动配置服务器)在TR-069协议网络架构中负责对CPE(Customer Pression Equalment,客户端设备)进行管理。ACS与CPE间的接口为南向接口,ACS与管理系统间的接口为北向接口。CPE与ACS进行交互时正是基于URL,用HTTPPOST与ACS进行数据交互。
在目前的移动通信技术中,一套ACS一般要监控上万台CPE,而且,CPE与ACS交互不同于一般互联网模式,它必须要求一个CPE的数据一直由一个ACS来处理,由于其业务的相关依赖性,如果一个CPE连续的几次请求被指到不同的ACS上,由于几次请求数据的相关性,ACS将很难处理。加之5G的到来,一套ACS要监控CPE将会以指数级的数量攀升,ACS将难以承受数据解析与分发的负担。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于URL的负载均衡方法、装置、计算机存储介质及设备。
本发明的一个方面,提供了一种基于URL的负载均衡方法,包括:
接收客户端设备CPE的服务请求,所述服务请求的URL中包括所述CPE对应的主自动配置服务器ACS的第一标识信息;
根据预设的映射关系查找所述第一标识信息对应的主ACS的第一地址信息,所述映射关系中包括ACS集群中各ACS的标识信息与地址信息之间的对应关系;
根据所述第一地址信息将所述服务请求发送到所述主ACS。
可选地,所述服务请求的URL中还包括所述CPE对应的备用自动配置服务器ACS的第二标识信息;
当所述主ACS发生故障时,所述方法还包括:
根据预设的映射关系查找所述第二标识信息对应的备用ACS的第二地址信息;
根据所述第二地址信息将所述服务请求发送到所述备用ACS。
可选地,在接收客户端设备CPE的服务请求之前,所述方法还包括:
为当前网络中每一CPE分配对应的ACS设备组,所述ACS设备组包括当前CPE对应的主ACS和/或备用ACS;
获取各个CPE的序列号,建立CPE与ACS之间的绑定关系,所述绑定关系中包括每一CPE的序列号与该CPE的服务请求的URL之间的对应关系;
根据所述绑定关系向每一CPE发送对应的URL。
可选地,在接收客户端设备CPE的服务请求之后,所述方法还包括:
对所述CPE的待转发报文进行解析,以获取所述CPE的序列号;
根据所述绑定关系判定所述CPE的序列号与所述服务请求的URL是否匹配;
若所述CPE的序列号与所述服务请求的URL不匹配,则根据所述绑定关系将与所述CPE的序列号匹配的URL发送到所述CPE。
本发明的另一个方面,提供了一种基于URL的负载均衡装置,包括:
接收模块,用于接收客户端设备CPE的服务请求,所述服务请求的URL中包括所述CPE对应的主自动配置服务器ACS的第一标识信息;
控制模块,用于根据预设的映射关系查找所述第一标识信息对应的主ACS的第一地址信息,所述映射关系中包括ACS集群中各ACS的标识信息与地址信息之间的对应关系;
发送模块,用于根据所述第一地址信息将所述服务请求发送到所述主ACS。
可选地,所述服务请求的URL中还包括所述CPE对应的备用自动配置服务器ACS的第二标识信息;
所述控制模块,还用于当所述主ACS发生故障时,根据预设的映射关系查找所述第二标识信息对应的备用ACS的第二地址信息;
所述发送模块,还用于根据所述第二地址信息将所述服务请求发送到所述备用ACS。
可选地,所述装置还包括:
配置模块,用于在接收客户端设备CPE的服务请求之前,为当前网络中每一CPE分配对应的ACS设备组,所述ACS设备组包括当前CPE对应的主ACS和/或备用ACS;获取各个CPE的序列号,建立CPE与ACS之间的绑定关系,所述绑定关系中包括每一CPE的序列号与该CPE的服务请求的URL之间的对应关系;
所述发送模块,还用于根据所述绑定关系向每一CPE发送对应的URL。
可选地,所述装置还包括:
检验模块,用于在接收客户端设备CPE的服务请求之后,对所述CPE的待转发报文进行解析,以获取所述CPE的序列号;根据所述绑定关系判定所述CPE的序列号与所述服务请求的URL是否匹配;
所述发送模块,还用于当所述CPE的序列号与所述服务请求的URL不匹配时,根据所述绑定关系将与所述CPE的序列号匹配的URL发送到所述CPE。
此外,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述方法的步骤。
此外,本发明还提供了一种设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述方法的步骤。
本发明实施例提供的基于URL的负载均衡方法、装置、计算机存储介质及设备,利用URL可以携带参数这个特性进行“控制反转”,根据服务请求的URL中携带的URL参数确定CPE与ACS结点之间的绑定联系,实现CPE主动找ACS的策略,减轻了ACS的数据解析与分发的负担,实现了ACS集群的负载均衡。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的基于URL的负载均衡方法所适用的系统结构示意图;
图2为本发明实施例提供的基于URL的负载均衡方法的流程示意图;
图3为本发明实施例提供的基于URL的负载均衡装置的结构示意图;
图4为本发明实施例提供的设备的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。
图1为本发明实施例提供的基于URL的负载均衡方法所适用的系统结构示意图。如图1所示,本发明提供的基于URL的负载均衡方法所适用的系统中包括:
CPE,即要监控的设备,只与控制结点基于HTTP POST进行数据交互
控制结点,即本发明提供的基于URL的负载均衡装置,主要功能包括规划各CPE与各ACS之间的绑定关系、路由转发、容错检验、节点控制等。
数据库,存储各CPE相关属性数据,以及系统中的所有要持久化的数据
ACS集群,包括多个水平扩展的ACS结点,集中处理CPE的业务。
图1示出了本发明一个实施例的基于URL的负载均衡方法的流程图。参照图1,本发明实施例的基于URL的负载均衡方法具体包括以下步骤:
S11、接收客户端设备CPE的服务请求,所述服务请求的URL中包括所述CPE对应的主自动配置服务器ACS的第一标识信息。
本实施例中,主自动配置服务器ACS为与当前CPE具有绑定关系的ACS,本发明利用URL可以携带参数这个特性进行“控制反转,将主ACS的第一标识信息作为URL参数传递给CPE,当CPE进行服务请求时,发送包括主ACS的第一标识信息的URL到基于URL的负载均衡装置,以供该负载均衡装置进行路由转发。
本实施例中,URL定义格式可以为:http://ip:port/ACS?t=a;其中,ACS_a为主ACS的标识信息。
S12、根据预设的映射关系查找所述第一标识信息对应的主ACS的第一地址信息,所述映射关系中包括ACS集群中各ACS的标识信息与地址信息之间的对应关系。
对于ACS结点,负载均衡装置会有一张映射关系表记录所有的结点信息,包括id、名称、IP、是否在线等,可以对结点进行添加、修改、删除等操作,映射关系表的数据结构如下:
id |
alias |
ip |
enabled |
1 |
a |
172.16.15.101 |
1 |
2 |
b |
172.16.15.102 |
1 |
3 |
… |
… |
… |
其中,ACS的标识信息可以为ACS的id或名称。
本实施例中,在接收到CPE的服务请求之后,负载均衡装置可以根据如上所示的映射关系表,查找主ACS的ip地址。
S13、根据所述第一地址信息将所述服务请求发送到所述主ACS。
本实施例中,负载均衡装置在收到每一个CPE请求时,根据其URL携带的参数,即主ACS的标识信息,查找主ACS的地址信息,查找到主ACS的ip地址后,根据该地址进行路由转发,以将服务请求分发到指定的ACS结点,实现CPE与ACS交互。ACS收到请求后进行业务处理并“原路”返回处理过的数据。
本发明实施例提供的基于URL的负载均衡方法,利用URL可以携带参数这个特性进行“控制反转”,将规划好的CPE与ACS结点之间的绑定联系,按URL参数的方式传递给CPE,实现CPE主动找ACS的策略,减轻了ACS的数据解析与分发的负担,实现了ACS集群的负载均衡。
本发明实施例中,所述服务请求的URL中还包括所述CPE对应的备用自动配置服务器ACS的第二标识信息;
当所述主ACS发生故障时,可根据预设的映射关系查找所述第二标识信息对应的备用ACS的第二地址信息;根据所述第二地址信息将所述服务请求发送到所述备用ACS。
本实施例中,URL定义格式为:http://ip:port/ACS?t=ab
后面的参数t=ab表示指向a备份b,当ACS_a结点发生故障时,基于URL的负载均衡装置会自动把请求转发给ACS_b结点,实现主备,防止其中一个节点故障影响业务。
本发明实施例中,步骤S11中的接收客户端设备CPE的服务请求之前,为当前网络中每一CPE分配对应的ACS设备组,所述ACS设备组包括当前CPE对应的主ACS和/或备用ACS;获取各个CPE的序列号,建立CPE与ACS之间的绑定关系,所述绑定关系中包括每一CPE的序列号与该CPE的服务请求的URL之间的对应关系;根据所述绑定关系向每一CPE发送对应的URL。
本实施例中,为了实现CPE与ACS之间的绑定关系,由负载均衡装置进行绑定规划,按照分权的方法来实现CPE与ACS之间的绑定,如定义ACS_a:ACS_b:ACS_c的权值为1:2:1,那么负载均衡装置将从所有CPE中划分1/4的数量给ACS_a,2/4的数量给ACS_b,1/4的数量给ACS_c。负载均衡装置将规划好的URL分发给各CPE,CPE收到后将会按收到的URL与ACS交互,实现了控制反转。本实施例中,负载均衡装置在规划并下发URL给各CPE之后,只管进行路由转发即可。
在实际应用中,每一个CPE都有一个唯一的序列号SN,此SN只能通过解析HTTP报文后才能获得,单从URL中无法知道此请求是哪个CPE发出的。
负载均衡装置在规划CPE与ACS之间的绑定关系时,必须解析报文得到CPE的SN,记录所有的SN和URL一一对应关系到数据库中。绑定关系的具体保存形式如下所示:
id |
sn |
url |
1 |
100a00db00sx |
http://ip:port/ACS?t=ab |
2 |
2001sx54sb11 |
http://ip:port/ACS?t=ac |
3 |
… |
… |
本发明实施例中,在步骤S11中的接收客户端设备CPE的服务请求之后,还包括:对所述CPE的待转发报文进行解析,以获取所述CPE的序列号;根据所述绑定关系判定所述CPE的序列号与所述服务请求的URL是否匹配;若所述CPE的序列号与所述服务请求的URL不匹配,则根据所述绑定关系将与所述CPE的序列号匹配的URL发送到所述CPE。
本发明实施例中,负载均衡装置会定期进行URL错误校验,即对CPE的待转发的报文进行解析,找出其SN,把当前CPE的SN、服务请求的URL与数据库中的绑定关系记录进行比对,对于序列号与所述服务请求的URL不匹配的数据,负载均衡装置将把纠正后的URL下发给CPE。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
本发明利用URL可以携带参数这个特性进行“控制反转”,根据服务请求的URL中携带的URL参数确定CPE与ACS结点之间的绑定联系,实现CPE主动找ACS的策略,减轻了ACS的数据解析与分发的负担,实现了ACS集群的负载均衡
图3示意性示出了本发明一个实施例的基于URL的负载均衡装置的结构示意图。参照图3,本发明实施例的基于URL的负载均衡装置具体包括接收模块201、控制模块202以及发送模块203,其中:
接收模块201,用于接收客户端设备CPE的服务请求,所述服务请求的URL中包括所述CPE对应的主自动配置服务器ACS的第一标识信息;
控制模块202,用于根据预设的映射关系查找所述第一标识信息对应的主ACS的第一地址信息,所述映射关系中包括ACS集群中各ACS的标识信息与地址信息之间的对应关系;
发送模块203,用于根据所述第一地址信息将所述服务请求发送到所述主ACS。
在本发明的可选实施例中,所述服务请求的URL中还包括所述CPE对应的备用自动配置服务器ACS的第二标识信息。
相应的,控制模块202,还用于当所述主ACS发生故障时,根据预设的映射关系查找所述第二标识信息对应的备用ACS的第二地址信息;
发送模块203,还用于根据所述第二地址信息将所述服务请求发送到所述备用ACS。
在本发明的可选实施例中,所述装置还包括附图中未示出的配置模块,该配置模块,用于在接收客户端设备CPE的服务请求之前,为当前网络中每一CPE分配对应的ACS设备组,所述ACS设备组包括当前CPE对应的主ACS和/或备用ACS;获取各个CPE的序列号,建立CPE与ACS之间的绑定关系,所述绑定关系中包括每一CPE的序列号与该CPE的服务请求的URL之间的对应关系;
发送模块203,还用于根据所述绑定关系向每一CPE发送对应的URL。
在本发明的可选实施例中,所述装置还包括附图中未示出的检验模块,该检验模块,用于在接收客户端设备CPE的服务请求之后,对所述CPE的待转发报文进行解析,以获取所述CPE的序列号;根据所述绑定关系判定所述CPE的序列号与所述服务请求的URL是否匹配;
发送模块203,还用于当所述CPE的序列号与所述服务请求的URL不匹配时,根据所述绑定关系将与所述CPE的序列号匹配的URL发送到所述CPE。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
本发明实施例提供的基于URL的负载均衡方法、装置,利用URL可以携带参数这个特性进行“控制反转”,将规划好的CPE与ACS结点之间的绑定联系,按URL参数的方式传递给CPE,实现CPE主动找ACS的策略,减轻了ACS的数据解析与分发的负担,实现了ACS集群的负载均衡。
此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述方法的步骤。
本实施例中,所述基于URL的负载均衡装置集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
图4为本发明实施例提供的设备的示意图。本发明实施例提供的设备,包括存储器301、处理器302及存储在存储器301上并可在处理器302上运行的计算机程序,所述处理器302执行所述计算机程序时实现上述各个基于URL的负载均衡方法实施例中的步骤,例如图2所示的S11、接收客户端设备CPE的服务请求,所述服务请求的URL中包括所述CPE对应的主自动配置服务器ACS的第一标识信息。S12、根据预设的映射关系查找所述第一标识信息对应的主ACS的第一地址信息,所述映射关系中包括ACS集群中各ACS的标识信息与地址信息之间的对应关系。S13、根据所述第一地址信息将所述服务请求发送到所述主ACS。或者,所述处理器302执行所述计算机程序时实现上述各基于URL的负载均衡装置实施例中各模块/单元的功能,例如图3所示的接收模块201、控制模块202以及发送模块203。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述基于URL的负载均衡装置中的执行过程。例如,所述计算机程序可以被分割成接收模块201、控制模块202以及发送模块203。
所述设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图4仅仅是所述设备的示例,并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述设备还可以包括输入输出设备、网络接入设备、总线等。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述设备的控制中心,利用各种接口和线路连接整个设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在本发明实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性或其它的形式。
本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。