CN104301241A - 一种soa动态负载分发方法与*** - Google Patents
一种soa动态负载分发方法与*** Download PDFInfo
- Publication number
- CN104301241A CN104301241A CN201410249317.9A CN201410249317A CN104301241A CN 104301241 A CN104301241 A CN 104301241A CN 201410249317 A CN201410249317 A CN 201410249317A CN 104301241 A CN104301241 A CN 104301241A
- Authority
- CN
- China
- Prior art keywords
- service
- node
- service node
- operation flow
- soa
- 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
Landscapes
- Multi Processors (AREA)
Abstract
本发明涉及一种SOA动态负载分发方法与***,在业务流程的服务调用请求到达时,提取各服务节点的服务能力信息;计算各个服务节点的利用率;进行分发,使分发后各服务节点的利用率趋于平衡,用以解决现有分发方法无法兼顾负载动态平衡和分发节点开销的问题。
Description
技术领域
本发明涉及一种面向服务的动态负载分发方法。
背景技术
在SOA环境下服务已成为资源共享、任务协作等的主要工作模式。SOA应用的性能依赖于协作服务的组合性能以及协作服务间的交互。
如图1为将服务调用请求向各个服务节点进行分发的负载管理措施。当一个请求到达时,首先需要经过分发节点根据一定的规则进行决策管理,然后选择某一个服务节点来进行服务调用。在该模式中参与分发决策的两方分别是到达的请求与后端的服务节点集合。实现前端分发模式的方法主要包括:静态算法、动态算法和基于请求内容算法。
静态算法包括:
轮转法(Round-Roubin,RR),认为后端服务节点具有相同的优先权,采用轮流服务的方式提供服务。当请求到达时,分发节点将轮流地选择后端节点。
加权轮转法(Weighted Round-Roubin,WRR),将服务节点能力进行加权,节点权值越大则提供服务的概率越大。
随机分发法(Random Dispatch,RD),随机选择服务节点。
地址散列法(Address Hash,AH),分为源地址与目标地址散列,根据请求与请求服务器的地址作为散列键找到相应的服务节点。
动态算法包括:
最小连接法(Least-Connection,LC),以服务节点上的连接数来估计负载,为服务请求选择当前连接数最小的服务节点。
最小负载法(Least-Loaded,LL),分发节点周期或实时地收集服务节点的负载状况,为到达的服务请求选择当前负载最小的服务节点。
基于请求内容算法:此类方法根据Web服务资源的不同请求,将服务请求分发到不同的Web服务上。根据请求内容的分发算法与相应的后端服务节点结合较为紧密,不同的应用请求对CPU、内存、带宽都具有不同的需求,该方法应用于提供功能较为复杂多样的Web应用服务器时效果较好。
对于分发模式中的决策双方,请求一般为工作流、业务流程、要求资源的应用***等等,故障或单个服务的变化会影响到多个业务流程,增加新的应用或业务流程会使得已有的服务过载,使得当前业务流程性能下降,甚至发生故障。由于服务节点的服务能力不相同,导致服务节点集合中有些节点可能处于过载状态,而同时又有一些节点处于轻载状态,最终影响整体的性能。因此,如何保证各服务节点之间的动态负载平衡,提高***整体服务效率,是迫切需要解决的问题。
上述静态算法往往只依赖于静态信息,虽然分发决策延迟较低,但是不能随着业务流程服务调用请求的变化及时做出反应,因此,对于业务流程动态变化的情况,各服务节点间负载平衡困难。
基于动态负载的算法,分发效果依赖于分发节点收集到当前服务节点负载信息的全面性和实时性,但分发节点的处理开销较大。而基于请求内容的算法需要采集请求信息,分析服务请求具体内容,分发节点开销较大。
发明内容
本发明的目的是提供一种SOA动态负载分发方法与***,用以解决现有分发方法无法兼顾负载动态平衡和分发节点开销的问题。
为实现上述目的,本发明的方案包括:
一种SOA动态负载分发方法,步骤如下:
1)在业务流程的服务调用请求到达时,提取各服务节点的服务能力信息;
2)计算各个服务节点的利用率;
3)进行分发,分发的第一约束条件为各服务节点利用率的方差最小化。
所述各服务节点利用率的方差最小化是以最小化为目标;其中ρi是服务节点i的平均服务率,为表示各个服务节点服务率的均值。
还包括第二约束条件:令具体服务节点上的剩余服务时间之和总和最大;剩余服务时间是每个服务节点上最大服务响应时间与预计平均服务时间的差,表示该服务节点服务能力与业务流程服务时间要求之间的差值,差值越大表明该服务节点对业务流程的服务能力越强。
根据业务流程的服务调用请求到达的强度的估计值,调整服务负载分发的时间间隔;服务负载分发的时间间隔大小与服务调用请求的到达强度呈反比。
一种SOA动态负载分发***,包括如下模块:
1)在业务流程的服务调用请求到达时,提取各服务节点的服务能力信息的模块;
2)计算各个服务节点的利用率的模块;
3)进行分发的模块,分发的第一约束条件为各服务节点利用率的方差最小化。
所述各服务节点利用率的方差最小化是以最小化为目标;其中ρi是服务节点i的平均服务率,为表示各个服务节点服务率的均值。
还包括第二约束条件:令具体服务节点上的剩余服务时间之和总和最大;剩余服务时间是每个服务节点上最大服务响应时间与预计平均服务时间的差,表示该服务节点服务能力与业务流程服务时间要求之间的差值,差值越大表明该服务节点对业务流程的服务能力越强。
根据业务流程的服务调用请求到达的强度的估计值,调整服务负载分发的时间间隔;服务负载分发的时间间隔大小与服务调用请求的到达强度呈反比。
本发明提出以服务节点的利用率平衡为目标,通过建立多目标优化目标模型并求解到各服务节点负载量,进行服务负载分发的方法,使各服务节点的负载达到平衡。
进一步的,以服务节点的利用率平衡服务节点剩余服务能力总和最大化为目标,使***具有更强的抗峰值流量的能力,增强***稳定性。根据已知的业务流程的服务调用请求到达强度和业务流程的服务响应时间约束等实时信息,通过服务代理进行服务负载分发,解决静态分发算法不适用业务流程动态变化的问题。
进一步的,本发明利用获取的负载信息动态调整服务分发的时间间隔,以提高服务效率和控制服务代理计算强度。
附图说明
图1是分发***构成示意图;
图2是本发明实施例的分发流程图。
具体实施方式
下面结合附图对本发明做进一步详细的说明。
本发明的基本方案如下:
一种SOA动态负载分发方法,在业务流程的服务调用请求到达时,提取各服务节点的服务能力信息;计算各个服务节点的利用率;进行分发,使分发后各服务节点的利用率趋于平衡。
以上思路能够平衡各节点利用率。具体的,可以用从各服务节点的服务能力信息提取出的平均服务率等参数进行表征。
譬如:利用率趋于平衡以最小化为目标;其中ρi是服务节点i的平均服务率,为表示各个服务节点服务率的均值。
分发方法由服务代理完成,服务代理是指服务代理程序。为了进一步提高上述基本方法的稳定性,除了上述利用率平衡的约束条件,还可以增加其他约束条件,如图2的一种具体的实施方式,增加了服务节点上的容忍时间总和最大的约束条件,还加入了对分发时间间隔的动态调整。具体包括步骤1-步骤5:
步骤1***信息输入
业务流程的服务调用请求通过服务代理分发到各服务节点,服务代理接收到各业务流程的服务调用请求之后将完成以下工作:
①采集各业务流程的服务请求的到达强度;
②提取各业务流程的服务响应时间约束;
③提取各服务节点的服务能力信息。
步骤2服务负载指派矩阵生成
服务代理依据负载平衡约束条件和服务节点上的剩余服务时间之和总和最大化目标生成服务负载服务负载分配矩阵。服务负载服务负载分配矩阵的行号表示业务流程,列号表示服务节点。
为了达到各服务节点的负载趋于平衡和服务节点上的剩余服务时间之和最大化目标,本发明定义两个约束条件:
第一个约束条件,使各个服务节点的利用率趋于平衡,以提升整体的服务能力;具体地,服务节点利用率趋于平衡表示为:各服务节点利用率的方差最小化。
第二个约束条件,令具体服务节点上的剩余服务时间之和总和最大,使得服务节点应对误差的能力也越强。其中剩余服务时间是每个服务节点上最大服务响应时间与预计平均服务时间的差,表示该服务节点服务能力与业务流程服务时间要求之间的差值,差值越大表明该服务节点对业务流程的服务能力越强。
综上,可以将服务选择优化问题归纳为一个非线性多目标优化问题,并可应用相关的数学方法求解。
步骤3服务负载分发
服务代理将按照步骤2中生成的服务负载服务负载分配矩阵对所有的服务调用请求分发到各个服务节点上。以具体实例说明如下:
***输入的业务流程的参数如表1所示,其中λ表示业务流程的服务请求到达强度,respt表示业务流程的最大服务响应时间要求。
表1业务流程参数
设定的5个具有不同服务能力的服务节点如表2所示,其中,μ表示节点的服务强度,n表示服务节点的并发服务数量。
表2服务节点参数
在约束条件下利用遗传算法工具求解约束多目标得到的服务负载服务负载分配矩阵A为:
该矩阵表示第i个业务流程有αij的服务请求被分配到第j个服务节点。
步骤4服务调用请求响应
服务节点接收到服务代理分发的服务调用请求之后,立即进行处理并将结果通过服务代理返回业务流程。
步骤5分发时间间隔动态调整
服务代理根据业务流程的服务调用请求到达的强度的估计值,动态调整服务负载分发的时间间隔,有效控制服务负载分发的开销。服务负载分发的时间间隔大小与服务调用请求的到达强度称反比。当负载过大,约束条件无法满足时,部分服务节点会出现过载,服务代理将队列尾部的服务请求丢弃,并向业务流程反馈相关暂停服务信息。
本发明的准备步骤包括:
服务代理采集服务节点的服务能力参数,包括服务节点i的并发服务数ni和服务速率μi;准确获得这些信息能够准确计算服务负载指派矩阵,使***中的服务节点利用率平衡。
本发明的善后步骤包括:
当业务流程的服务调用请求急剧增加,服务代理估计的负载强度超出服务节点的服务能力时,服务代理将不再接受服务调用请求,并向各业务流程发送暂停服务请求消息。
本发明针对SOA环境中分布式部署的多服务器之间性能差异和业务流程到达的随机性造成服务节点负载不平衡问题,提出利用服务代理对业务流程的服务请求在满足服务响应时间的QoS约束下以服务节点负载平衡为目标,对服务进行分发,使各服务节点的利用率近似达到平衡;同时以最大化服务节点容忍时间为优化目标,以提高服务***抵抗峰值流量的能力,以提高服务***的稳定性。
以上给出了了一种具体的实施方式,但本发明不局限于所描述的实施方式。本发明的思路在于上述基本方案,对本领域普通技术人员而言,根据本发明的教导,设计出各种变形的模型、公式、参数并不需要花费创造性劳动。在不脱离本发明的原理和精神的情况下对实施方式进行的变化、修改、替换和变型仍落入本发明的保护范围内。
Claims (8)
1.一种SOA动态负载分发方法,其特征在于,步骤如下:
1)在业务流程的服务调用请求到达时,提取各服务节点的服务能力信息;
2)计算各个服务节点的利用率;
3)进行分发,分发的第一约束条件为各服务节点利用率的方差最小化。
2.根据权利要求1所述的一种SOA动态负载分发方法,其特征在于,所述各服务节点利用率的方差最小化是以最小化为目标;其中ρi是服务节点i的平均服务率,为表示各个服务节点服务率的均值。
3.根据权利要求1所述的一种SOA动态负载分发方法,其特征在于,还包括第二约束条件:令具体服务节点上的剩余服务时间之和总和最大;剩余服务时间是每个服务节点上最大服务响应时间与预计平均服务时间的差,表示该服务节点服务能力与业务流程服务时间要求之间的差值,差值越大表明该服务节点对业务流程的服务能力越强。
4.根据权利要求1或2或3所述的一种SOA动态负载分发方法,其特征在于,根据业务流程的服务调用请求到达的强度的估计值,调整服务负载分发的时间间隔;服务负载分发的时间间隔大小与服务调用请求的到达强度呈反比。
5.一种SOA动态负载分发***,其特征在于,包括如下模块:
1)在业务流程的服务调用请求到达时,提取各服务节点的服务能力信息的模块;
2)计算各个服务节点的利用率的模块;
3)进行分发的模块,分发的第一约束条件为各服务节点利用率的方差最小化。
6.根据权利要求5所述的一种SOA动态负载分发***,其特征在于,所述各服务节点利用率的方差最小化是以最小化为目标;其中ρi是服务节点i的平均服务率,为表示各个服务节点服务率的均值。
7.根据权利要求5所述的一种SOA动态负载分发***,其特征在于,还包括第二约束条件:令具体服务节点上的剩余服务时间之和总和最大;剩余服务时间是每个服务节点上最大服务响应时间与预计平均服务时间的差,表示该服务节点服务能力与业务流程服务时间要求之间的差值,差值越大表明该服务节点对业务流程的服务能力越强。
8.根据权利要求5或6或7所述的一种SOA动态负载分发***,其特征在于,根据业务流程的服务调用请求到达的强度的估计值,调整服务负载分发的时间间隔;服务负载分发的时间间隔大小与服务调用请求的到达强度呈反比。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410249317.9A CN104301241B (zh) | 2014-06-05 | 2014-06-05 | 一种soa动态负载分发方法与*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410249317.9A CN104301241B (zh) | 2014-06-05 | 2014-06-05 | 一种soa动态负载分发方法与*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104301241A true CN104301241A (zh) | 2015-01-21 |
CN104301241B CN104301241B (zh) | 2018-01-09 |
Family
ID=52320814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410249317.9A Active CN104301241B (zh) | 2014-06-05 | 2014-06-05 | 一种soa动态负载分发方法与*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104301241B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580538A (zh) * | 2015-02-12 | 2015-04-29 | 山东大学 | 一种提高Nginx服务器负载均衡效率的方法 |
CN105099936A (zh) * | 2015-08-31 | 2015-11-25 | 联想(北京)有限公司 | 一种网络资源配置方法、设备和网络*** |
CN105491150A (zh) * | 2015-12-28 | 2016-04-13 | 中国民航信息网络股份有限公司 | 基于时间序列的负载均衡处理方法及*** |
CN107205020A (zh) * | 2017-05-05 | 2017-09-26 | 国网福建省电力有限公司 | 面向服务架构下的服务负载均衡方法及*** |
CN108737192A (zh) * | 2018-06-01 | 2018-11-02 | 北京航空航天大学 | 基于业务可靠性的网络业务部署方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002091936A (ja) * | 2000-09-11 | 2002-03-29 | Hitachi Ltd | 負荷分散装置及び負荷見積もり方法 |
CN101989951A (zh) * | 2010-10-28 | 2011-03-23 | 北京瑞汛世纪科技有限公司 | 一种选择服务节点的方法、***和设备 |
CN102004673A (zh) * | 2010-11-29 | 2011-04-06 | 中兴通讯股份有限公司 | 多核处理器负载均衡的处理方法及*** |
CN102185779A (zh) * | 2011-05-11 | 2011-09-14 | 田文洪 | 与综合配置能力成比例的数据中心资源负载均衡的方法及装置 |
CN102232282A (zh) * | 2010-10-29 | 2011-11-02 | 华为技术有限公司 | 一种实现数据中心资源负载均衡的方法及装置 |
CN103118124A (zh) * | 2013-02-22 | 2013-05-22 | 桂林电子科技大学 | 一种基于分层多代理的云计算负载均衡方法 |
CN103226467A (zh) * | 2013-05-23 | 2013-07-31 | 中国人民解放军国防科学技术大学 | 数据并行处理方法、***及负载均衡调度器 |
CN103259832A (zh) * | 2012-12-24 | 2013-08-21 | 中国科学院沈阳自动化研究所 | 实现动态负载平衡、故障诊断与转移的群集资源控制方法 |
-
2014
- 2014-06-05 CN CN201410249317.9A patent/CN104301241B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002091936A (ja) * | 2000-09-11 | 2002-03-29 | Hitachi Ltd | 負荷分散装置及び負荷見積もり方法 |
CN101989951A (zh) * | 2010-10-28 | 2011-03-23 | 北京瑞汛世纪科技有限公司 | 一种选择服务节点的方法、***和设备 |
CN102232282A (zh) * | 2010-10-29 | 2011-11-02 | 华为技术有限公司 | 一种实现数据中心资源负载均衡的方法及装置 |
CN102004673A (zh) * | 2010-11-29 | 2011-04-06 | 中兴通讯股份有限公司 | 多核处理器负载均衡的处理方法及*** |
CN102185779A (zh) * | 2011-05-11 | 2011-09-14 | 田文洪 | 与综合配置能力成比例的数据中心资源负载均衡的方法及装置 |
CN103259832A (zh) * | 2012-12-24 | 2013-08-21 | 中国科学院沈阳自动化研究所 | 实现动态负载平衡、故障诊断与转移的群集资源控制方法 |
CN103118124A (zh) * | 2013-02-22 | 2013-05-22 | 桂林电子科技大学 | 一种基于分层多代理的云计算负载均衡方法 |
CN103226467A (zh) * | 2013-05-23 | 2013-07-31 | 中国人民解放军国防科学技术大学 | 数据并行处理方法、***及负载均衡调度器 |
Non-Patent Citations (1)
Title |
---|
于国防等: "基于分配器队列模糊控制的集群负载平衡", 《计算机工程》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580538A (zh) * | 2015-02-12 | 2015-04-29 | 山东大学 | 一种提高Nginx服务器负载均衡效率的方法 |
CN104580538B (zh) * | 2015-02-12 | 2018-02-23 | 山东大学 | 一种提高Nginx服务器负载均衡效率的方法 |
CN105099936A (zh) * | 2015-08-31 | 2015-11-25 | 联想(北京)有限公司 | 一种网络资源配置方法、设备和网络*** |
CN105099936B (zh) * | 2015-08-31 | 2018-10-12 | 联想(北京)有限公司 | 一种网络资源配置方法、设备和网络*** |
CN105491150A (zh) * | 2015-12-28 | 2016-04-13 | 中国民航信息网络股份有限公司 | 基于时间序列的负载均衡处理方法及*** |
CN107205020A (zh) * | 2017-05-05 | 2017-09-26 | 国网福建省电力有限公司 | 面向服务架构下的服务负载均衡方法及*** |
CN108737192A (zh) * | 2018-06-01 | 2018-11-02 | 北京航空航天大学 | 基于业务可靠性的网络业务部署方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104301241B (zh) | 2018-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chekired et al. | Industrial IoT data scheduling based on hierarchical fog computing: A key for enabling smart factory | |
Lu et al. | Join-idle-queue: A novel load balancing algorithm for dynamically scalable web services | |
CN104657220B (zh) | 混合云中基于截止时间和费用约束的调度模型及方法 | |
CN104301241A (zh) | 一种soa动态负载分发方法与*** | |
Liu et al. | D-storm: Dynamic resource-efficient scheduling of stream processing applications | |
CN102724103B (zh) | 代理服务器、分层次网络***及分布式工作负载管理方法 | |
WO2019001092A1 (zh) | 负载均衡引擎,客户端,分布式计算***以及负载均衡方法 | |
CN103401947A (zh) | 多个服务器的任务分配方法和装置 | |
Liu et al. | Task scheduling in fog enabled Internet of Things for smart cities | |
CN102035737A (zh) | 一种基于认知网络的自适应负载均衡方法和装置 | |
CN102110014A (zh) | 虚拟机负载均衡处理的方法 | |
Wen et al. | Load balancing job assignment for cluster-based cloud computing | |
CN103391206A (zh) | 一种任务调度方法及其装置 | |
CN105975332A (zh) | 一种多智能体分布式联盟形成方法 | |
CN105119751A (zh) | 一种基于环境实时感知的服务评估及选取方法 | |
CN101803340A (zh) | 用于平衡信息负载的***和方法 | |
CN104219319A (zh) | 一种分布式网络流量自组织调度方法 | |
Khodar et al. | New scheduling approach for virtual machine resources in cloud computing based on genetic algorithm | |
CN104283963A (zh) | 一种分布合作式的cdn负载均衡方法 | |
CN104009904B (zh) | 面向云平台大数据处理的虚拟网络构建方法及*** | |
CN102711178B (zh) | 基于用户需求和网络负载均衡的群体联合接纳控制方法 | |
CN103078806B (zh) | 一种基于q值法的负载均衡调度算法 | |
CN109600402A (zh) | 服务器负载均衡方法及装置、存储介质、服务器、服务*** | |
CN103678000A (zh) | 基于可靠性和合作博弈的计算网格均衡任务调度方法 | |
CN104317657B (zh) | 实时交通流量统计中均衡统计任务的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |