CN106027581B - 一种基于负载均衡实现灰度发布的方法及系统 - Google Patents
一种基于负载均衡实现灰度发布的方法及系统 Download PDFInfo
- Publication number
- CN106027581B CN106027581B CN201510124686.XA CN201510124686A CN106027581B CN 106027581 B CN106027581 B CN 106027581B CN 201510124686 A CN201510124686 A CN 201510124686A CN 106027581 B CN106027581 B CN 106027581B
- Authority
- CN
- China
- Prior art keywords
- application
- service request
- belonging
- determining
- working mode
- 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.)
- Active
Links
Landscapes
- Telephonic Communication Services (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于负载均衡实现灰度发布的方法及系统,包括:接收第一业务请求,确定所述第一业务请求对应的处理应用类型以及属于所述第一业务请求对应的处理应用类型的应用;确定属于所述第一业务请求对应的处理应用类型的应用的数量n,根据所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用;将所述第一业务请求分发给选择的应用;如此,本发明实施例根据确定属于所述第一业务请求对应的处理应用类型的应用的数量n、业务请求种类以及系统当前负载情况从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用,能够有效地对业务请求进行分发,从而提高灰度发布系统的性能并缩减业务请求的平均响应时间。
Description
技术领域
本发明涉及业务支撑领域,尤其涉及一种基于负载均衡实现灰度发布的方法及系统。
背景技术
随着市场竞争的日益加剧,业务及产品层出不穷,互联网的业务需求量也不断地增长,而且用户对互联网业务的及时性要求也越来越高。如何快速、高效且安全地发布业务,保障互联网对外服务的连续性及稳定性,是目前业务支撑领域面临的一项重要挑战。
为解决上述问题,在业务需求开发阶段和版本发布过程中引入了互联网业界普遍采用的灰度发布模式。灰度发布模式是以版本的快速迭代为目标,通过将新版本发布到灰度环境,逐步扩大试用客户范围,根据客户的反馈进行优化,最终使系统平滑升级过渡的一种版本发布模式。
现有的第一种灰度发布方法通过软负载层对用户的业务请求进行分发控制,将不同用户的业务请求分发到灰度应用服务器或公众应用服务器实现,为了实现第一种方法需要部署一组灰度应用服务器和一组公众应用服务器,且两组服务器均须有100%的承载能力,提升了第一种方法的部署复杂度。为了降低部署复杂度,现有的第二种灰度发布方法将灰度应用及公众应用部署在一组应用服务器,同时通过软负载层控制用户灰度分流,将不同用户的业务请求分发到灰度应用或公众应用实现。第二种方法在为用户提供业务服务的过程中,可能会因为业务请求分发的不均衡而出现灰度发布系统性能降低的问题。
因此,灰度应用及公众应用部署在一组应用服务器的场景下,如何有效地对业务请求进行分发,提高灰度发布系统的性能,就成为一个亟待解决的问题。
发明内容
有鉴于此,本发明实施例提供基于负载均衡实现灰度发布的方法及系统,能够有效地对业务请求进行分发,从而提高灰度发布系统的性能并缩减业务请求的平均响应时间。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供了一种基于负载均衡实现灰度发布的方法,该方法包括:
接收第一业务请求,确定所述第一业务请求对应的处理应用类型以及属于所述第一业务请求对应的处理应用类型的应用;
确定属于所述第一业务请求对应的处理应用类型的应用的数量n,根据所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用;
将所述第一业务请求分发给选择的应用。
上述方案中,所述处理应用类型为公众应用或灰度应用;
该方法还包括:
统计预设时间段内接收到的所有第二业务请求;
根据所有第二业务请求及当前系统资源空闲率,确定属于处理应用类型为公众应用的应用数量PS以及属于处理应用类型为灰度应用的应用数量GS。
上述方案中,所述根据所有第二业务请求及当前系统资源空闲率,确定属于处理应用类型为公众应用的应用数量PS以及属于处理应用类型为灰度应用的应用数量GS,包括:
确定各个第二业务请求对应的处理应用类型,确定对应处理应用类型为公众应用的第二业务请求的数量PR和对应处理应用类型为灰度应用的第二业务请求的数量GR;
若当前系统资源空闲率大于第一阈值,则将PS确定为所述PR与预设的应用第一业务请求数C的商,将GS确定为所述GR与所述C的商;
若当前系统资源空闲率不大于第一阈值但大于第二阈值,则将所述PS确定为所述PR与所述C的商,将所述GS确定为所述GR与预设的应用第二业务请求数E的商;
若当前系统资源空闲率不大于第二阈值但大于第三阈值,则将所述PS确定为所述PR与所述E的商,将所述GS确定为所述GR与预设的应用第三业务请求数U的商;
若当前系统资源空闲率不大于第三阈值,则将所述PS确定为所述PR与所述U的商,将所述GS确定为所述GR与所述U的商;
其中,所述第一阈值大于所述第二阈值,且所述第二阈值大于所述第三阈值;所述U大于所述E,且所述E大于所述C。
上述方案中,所述根据所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用,包括:
获取预设信息周期内处理的所有第三业务请求,确定所有第三业务请求对应的请求种类及所有第三业务请求对应的请求种类数m;
确定每个请求种类的业务处理时间γ(j)以及所述预设信息周期内分发给各个属于所述第一业务请求对应的处理应用类型的应用的各个请求种类的业务请求的数量β(ij),并计算L(i,j)=β(ij)×γ(j),其中,j为第j个业务请求种类,且1≤j≤m,i为属于所述第一业务请求对应的处理应用类型的第i个应用,且1≤i≤n;
计算L(k,j)=min∈N{L(i,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用;
或者,
根据L(i,j)与预设的属于所述第一业务请求对应的处理应用类型的第i个应用的时间负载阈值y(i)的关系确定待选应用集合;
若所述待选应用集合中的元素数量为0,则随机选择属于所述第一业务请求对应的处理应用类型的一个应用作为选择的应用;
若所述待选应用集合中的元素数量为1,则选择所述待选应用集合中的属于所述第一业务请求对应的处理应用类型的应用作为选择的应用;
若所述待选应用集合中的元素数量多于1,则随机选择属于所述第一业务请求对应的处理应用类型的两个应用a和d,计算L(k,j)=min{L(a,j),L(d,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用。
上述方案中,该方法还包括:
确定属于所述第一业务请求对应的处理应用类型的应用工作模式;
所述根据所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用,包括:
根据所述属于所述第一业务请求对应的处理应用类型的应用工作模式、所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用。
上述方案中,所述处理应用类型为灰度应用或公众应用;所述应用工作模式包括最大性能工作模式、最大效率工作模式、最大用户工作模式;
所述确定属于所述第一业务请求对应的处理应用类型的应用工作模式,包括:
若当前系统资源空闲率大于第一阈值,则将属于处理应用类型为公众应用的应用工作模式确定为最大性能工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大性能工作模式;
若当前系统资源空闲率不大于第一阈值但大于第二阈值,则将属于处理应用类型为公众应用的应用工作模式确定为最大性能工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大效率工作模式;
若当前系统资源空闲率不大于第二阈值但大于第三阈值,则将属于处理应用类型为公众应用的应用工作模式确定为最大效率工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大用户工作模式;
若当前系统资源空闲率不大于第三阈值,则将属于处理应用类型为公众应用的应用工作模式确定为最大用户工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大用户工作模式。
上述方案中,所述根据所述属于所述第一业务请求对应的处理应用类型的应用工作模式、所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用,包括:
获取预设信息周期内处理的所有第三业务请求,确定所有第三业务请求对应的请求种类及m;
确定γ(j)以及β(ij),并计算L(i,j)=β(ij)×γ(j)},其中,1≤j≤m,1≤i≤n;
若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大效率工作模式,或者,若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大性能工作模式,且获取随机数r,所述r不大于设定的最小负载算法调用概率,则计算L(k,j)=min∈N{L(i,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用;
若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大用户工作模式,或者,若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大性能工作模式,且获取随机数r,所述r小于设定的最小负载算法调用概率,则根据L(i,j)与y(i)的关系确定待选应用集合;
若所述待选应用集合中的元素数量为0,则随机选择属于所述第一业务请求对应的处理应用类型的一个应用作为选择的应用;
若所述待选应用集合中的元素数量为1,则选择所述待选应用集合中的属于所述第一业务请求对应的处理应用类型的应用作为选择的应用;
若所述待选应用集合中的元素数量多于1,则随机选择a和d,计算L(k,j)=min{L(a,j),L(d,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用。
根据上述方法,本发明实施例提供了一种基于负载均衡实现灰度发布的系统,该系统包括:第一确定模块、选择模块、分发模块;其中,
所述第一确定模块,用于接收第一业务请求,确定所述第一业务请求对应的处理应用类型以及属于所述第一业务请求对应的处理应用类型的应用,以及确定属于所述第一业务请求对应的处理应用类型的应用的数量n;
所述选择模块,用于根据所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用;
所述分发模块,用于将所述第一业务请求分发给选择的应用。
上述方案中,所述处理应用类型为公众应用或灰度应用;
所述系统还包括:
第二确定模块,用于统计预设时间段内接收到的所有第二业务请求;并根据所有第二业务请求及当前系统资源空闲率,确定属于处理应用类型为公众应用的应用数量PS以及属于处理应用类型为灰度应用的应用数量GS。
上述方案中,所述第二确定模块,具体用于确定各个第二业务请求对应的处理应用类型,确定对应处理应用类型为公众应用的第二业务请求的数量PR和对应处理应用类型为灰度应用的第二业务请求的数量GR;
若当前系统资源空闲率大于第一阈值,则将PS确定为所述PR与预设的应用第一业务请求数C的商,将GS确定为所述GR与所述C的商;
若当前系统资源空闲率不大于第一阈值但大于第二阈值,则将所述PS确定为所述PR与所述C的商,将所述GS确定为所述GR与预设的应用第二业务请求数E的商;
若当前系统资源空闲率不大于第二阈值但大于第三阈值,则将所述PS确定为所述PR与所述E的商,将所述GS确定为所述GR与预设的应用第三业务请求数U的商;
若当前系统资源空闲率不大于第三阈值,则将所述PS确定为所述PR与所述U的商,将所述GS确定为所述GR与所述U的商;
其中,所述第一阈值大于所述第二阈值,且所述第二阈值大于所述第三阈值;所述U大于所述E,且所述E大于所述C。
上述方案中,所述选择模块,具体用于获取预设信息周期内处理的所有第三业务请求,确定所有第三业务请求对应的请求种类及所有第三业务请求对应的请求种类数m;
确定每个请求种类的业务处理时间γ(j)以及所述预设信息周期内分发给各个属于所述第一业务请求对应的处理应用类型的应用的各个请求种类的业务请求的数量β(ij),并计算L(i,j)=β(ij)×γ(j),其中,j为第j个业务请求种类,且1≤j≤m,i为属于所述第一业务请求对应的处理应用类型的第i个应用,且1≤i≤n;
计算L(k,j)=min∈N{L(i,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用;
或者,
根据L(i,j)与预设的属于所述第一业务请求对应的处理应用类型的第i个应用的时间负载阈值y(i)的关系确定待选应用集合;
若所述待选应用集合中的元素数量为0,则随机选择属于所述第一业务请求对应的处理应用类型的一个应用作为选择的应用;
若所述待选应用集合中的元素数量为1,则选择所述待选应用集合中的属于所述第一业务请求对应的处理应用类型的应用作为选择的应用;
若所述待选应用集合中的元素数量多于1,则随机选择属于所述第一业务请求对应的处理应用类型的两个应用a和d,计算L(k,j)=min{L(a,j),L(d,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用。
上述方案中,所述第一确定模块,还用于确定属于所述第一业务请求对应的处理应用类型的应用工作模式;
相应的,所述选择模块,还用于根据所述属于所述第一业务请求对应的处理应用类型的应用工作模式、所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用。
上述方案中,所述处理应用类型为灰度应用或公众应用;所述应用工作模式包括最大性能工作模式、最大效率工作模式、最大用户工作模式;
所述第一确定模块,具体用于确定当前系统资源空闲率大于第一阈值时,将属于处理应用类型为公众应用的应用工作模式确定为最大性能工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大性能工作模式;
确定当前系统资源空闲率不大于第一阈值但大于第二阈值时,将属于处理应用类型为公众应用的应用工作模式确定为最大性能工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大效率工作模式;
确定当前系统资源空闲率不大于第二阈值但大于第三阈值时,将属于处理应用类型为公众应用的应用工作模式确定为最大效率工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大用户工作模式;
确定当前系统资源空闲率不大于第三阈值时,将属于处理应用类型为公众应用的应用工作模式确定为最大用户工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大用户工作模式。
上述方案中,所述选择模块,具体用于获取预设信息周期内处理的所有第三业务请求,确定所有第三业务请求对应的请求种类及m;
确定γ(j)以及β(ij),并计算L(i,j)=β(ij)×γ(j)},其中,1≤j≤m,1≤i≤n;
若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大效率工作模式,或者,若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大性能工作模式,且获取随机数r,所述r不大于设定的最小负载算法调用概率,则计算L(k,j)=min∈N{L(i,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用;
若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大用户工作模式,或者,若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大性能工作模式,且获取随机数r,所述r小于设定的最小负载算法调用概率,则根据L(i,j)与y(i)的关系确定待选应用集合;
若所述待选应用集合中的元素数量为0,则随机选择属于所述第一业务请求对应的处理应用类型的一个应用作为选择的应用;
若所述待选应用集合中的元素数量为1,则选择所述待选应用集合中的属于所述第一业务请求对应的处理应用类型的应用作为选择的应用;
若所述待选应用集合中的元素数量多于1,则随机选择a和d,计算L(k,j)=min{L(a,j),L(d,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用。
本发明实施例所提供的基于负载均衡实现灰度发布的方法及系统,接收第一业务请求,确定所述第一业务请求对应的处理应用类型以及属于所述第一业务请求对应的处理应用类型的应用;确定属于所述第一业务请求对应的处理应用类型的应用的数量n,根据所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用;将所述第一业务请求分发给选择的应用;如此,本发明实施例根据确定属于所述第一业务请求对应的处理应用类型的应用的数量n、业务请求种类以及系统当前负载情况从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用,能够有效地对业务请求进行分发,从而提高灰度发布系统的性能并缩减业务请求的平均响应时间。
附图说明
图1为本发明实施例基于负载均衡实现灰度发布的方法流程示意图;
图2为本发明实施例基于负载均衡实现灰度发布的系统结构示意图。
具体实施方式
本发明实施例中,接收第一业务请求,确定所述第一业务请求对应的处理应用类型以及属于所述第一业务请求对应的处理应用类型的应用;确定属于所述第一业务请求对应的处理应用类型的应用的数量n,根据所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用;将所述第一业务请求分发给选择的应用。
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
本发明实施例提出了一种基于负载均衡实现灰度发布的方法,如图1所示,具体实现步骤包括:
步骤S101:接收第一业务请求,确定所述第一业务请求对应的处理应用类型以及属于所述第一业务请求对应的处理应用类型的应用,以及确定属于所述第一业务请求对应的处理应用类型的应用的数量n。
这里,所述处理应用类型为公众应用或灰度应用。
这里,灰度应用及公众应用部署在一组应用服务器中,且一台应用服务器中部署一个灰度应用及一个公众应用,所述灰度应用为用户提供灰度业务服务,所述公众应用为用户提供公众业务服务;其中,所述灰度业务是指首先提供给一部分用户试用,然后根据用户反馈逐步扩大试用用户范围的业务,例如,首先提供给一部分地区的用户、或手机号码头为139的用户试用;所述公众业务是可以正式提供给所有用户使用的业务。
进一步地,该方法还包括:
步骤S100:统计预设时间段内接收到的所有第二业务请求;并根据所有第二业务请求及当前系统资源空闲率,确定属于处理应用类型为公众应用的应用数量PS以及属于处理应用类型为灰度应用的应用数量GS。
具体的,首先,确定各个第二业务请求对应的处理应用类型,确定对应处理应用类型为公众应用的第二业务请求的数量PR和对应处理应用类型为灰度应用的第二业务请求的数量GR;
若当前系统资源空闲率大于第一阈值,则将PS确定为所述PR与预设的应用第一业务请求数C的商,将GS确定为所述GR与所述C的商;
若当前系统资源空闲率不大于第一阈值但大于第二阈值,则将所述PS确定为所述PR与所述C的商,将所述GS确定为所述GR与预设的应用第二业务请求数E的商;
若当前系统资源空闲率不大于第二阈值但大于第三阈值,则将所述PS确定为所述PR与所述E的商,将所述GS确定为所述GR与预设的应用第三业务请求数U的商;
若当前系统资源空闲率不大于第三阈值,则将所述PS确定为所述PR与所述U的商,将所述GS确定为所述GR与所述U的商;
其中,所述第一阈值大于所述第二阈值,且所述第二阈值大于所述第三阈值;所述U大于所述E,且所述E大于所述C。
这里,所述第一阈值、所述第二阈值及所述第三阈值的取值范围均为(0,1),所述第一阈值、所述第二阈值及所述第三阈值可以根据系统性能指标进行预设;优选的,根据系统性能指标将所述第一阈值预设为20%,所述第二阈值预设为10%,所述第三阈值预设为5%,这里对所述第一阈值、第二阈值及第三阈值的取值不作具体限定。
这里,所述U、所述E及所述C可以根据系统资源空闲率进行预设。
这里,预设时间段可以根据实际情况进行预设,优选的,可以将时间段预设为1s,这里对预设时间段不作具体限定。
这里,所述系统资源空闲率为应用服务器组的空闲资源总量与应用服务器组的资源总量的比值。
优选的,若灰度应用占用的系统资源总量大于预设的第一性能指标基线,或者至少一个灰度应用返回错误时,则结束对应处理应用类型为灰度应用的业务请求的处理,并发送告警信息;若公众应用占用的系统资源总量大于预设的第二性能指标基线,或者至少一个公众应用返回错误时,则重启所有公众应用,并发送告警信息。
优选的,可以周期性地统计接收到的所有第二业务请求,根据本次接收的所有第二业务请求及当前系统资源空闲率,确定本次属于处理应用类型为公众应用的应用数量PS以及属于处理应用类型为灰度应用的应用数量GS;并将当前属于处理应用类型为公众应用的应用数量PS以及属于处理应用类型为灰度应用的应用数量GS调整为本次确定的属于处理应用类型为公众应用的应用数量PS以及属于处理应用类型为灰度应用的应用数量GS,从而实现根据本次接收的所有第二业务请求及当前系统资源空闲率动态地调整当前属于处理应用类型为公众应用的应用数量PS以及属于处理应用类型为灰度应用的应用数量GS。
这里,若确定所述第一业务请求对应的处理应用类型为灰度应用,则确定属于所述第一业务请求对应的处理应用类型的应用为灰度应用,并根据当前灰度应用的应用数量GS确定属于所述第一业务请求对应的灰度应用的数量n为GS;若确定所述第一业务请求对应的处理应用类型为公众应用,则确定属于所述第一业务请求对应的处理应用类型的应用为公众应用,并根据当前灰度应用的应用数量PS确定属于所述第一业务请求对应的公众应用的数量n为PS。
这里,具体如何确定所述第一业务请求对应的处理应用类型可以采用现有处理应用类型确定方式,此处不再赘述。
步骤S102:根据所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用。
具体的,首先获取预设信息周期内处理的所有第三业务请求,确定所有第三业务请求对应的请求种类及所有第三业务请求对应的请求种类数m;
确定每个请求种类的业务处理时间γ(j)以及所述预设信息周期内分发给各个属于所述第一业务请求对应的处理应用类型的应用的各个请求种类的业务请求的数量β(ij),并计算L(i,j)=β(ij)×γ(j),其中,j为第j个业务请求种类,且1≤j≤m,i为属于所述第一业务请求对应的处理应用类型的第i个应用,且1≤i≤n;
然后,可以根据以下两种方式中的任一种方式,从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用:
方式一、计算L(k,j)=min∈N{L(i,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用。
方式二、根据L(i,j)与预设的属于所述第一业务请求对应的处理应用类型的第i个应用的时间负载阈值y(i)的关系确定待选应用集合;
若所述待选应用集合中的元素数量为0,则随机选择属于所述第一业务请求对应的处理应用类型的一个应用作为选择的应用;
若所述待选应用集合中的元素数量为1,则选择所述待选应用集合中的属于所述第一业务请求对应的处理应用类型的应用作为选择的应用;
若所述待选应用集合中的元素数量多于1,则随机选择属于所述第一业务请求对应的处理应用类型的两个应用a和d,计算L(k,j)=min{L(a,j),L(d,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用。
这里,确定所有第三业务请求对应的请求种类及所有第三业务请求对应的请求种类数m,例如,若10个第三业务请求中每个第三业务请求分别对应一种请求种类,则确定所有第三业务请求对应的请求种类数m为10。
这里,根据L(i,j)与预设的属于所述第一业务请求对应的处理应用类型的第i个应用的时间负载阈值y(i)的关系确定待选应用集合,具体采用如下方式:
若计算的第i个应用的L(i,j)小于第i个应用的时间负载阈值y(i),则将第i个应用作为一个元素加入待选应用集合;
若计算的第i个应用的L(i,j)大于第i个应用的时间负载阈值y(i),则结束本次处理流程。
在本发明的一种优选实现方案中,在步骤S101中,确定属于处理应用类型为公众应用的应用数量PS以及属于处理应用类型为灰度应用的应用数量GS之后,确定属于所述第一业务请求对应的处理应用类型的应用工作模式;在步骤S102中,根据所述属于所述第一业务请求对应的处理应用类型的应用工作模式、所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用。
这里,所述处理应用类型为灰度应用或公众应用;所述应用工作模式包括最大性能工作模式、最大效率工作模式、最大用户工作模式;
确定属于所述第一业务请求对应的处理应用类型的应用工作模式,具体采用如下方式:
若当前系统资源空闲率大于第一阈值,则将属于处理应用类型为公众应用的应用工作模式确定为最大性能工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大性能工作模式;
若当前系统资源空闲率不大于第一阈值但大于第二阈值,则将属于处理应用类型为公众应用的应用工作模式确定为最大性能工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大效率工作模式;
若当前系统资源空闲率不大于第二阈值但大于第三阈值,则将属于处理应用类型为公众应用的应用工作模式确定为最大效率工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大用户工作模式;
若当前系统资源空闲率不大于第三阈值,则将属于处理应用类型为公众应用的应用工作模式确定为最大用户工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大用户工作模式。
这里,可以将最大性能工作模式下公众应用及灰度应用承载的业务请求数预设为第一业务请求数C,最大效率工作模式下公众应用及灰度应用承载的业务请求数预设为第二业务请求数E,最大用户工作模式下公众应用及灰度应用承载的业务请求数预设为第三业务请求数U;其中,所述U大于所述E,且所述E大于所述C。
进一步地,所述应用工作模式还包括:故障处理工作模式;该故障处理工作模式,用于监控最大性能工作模式、最大效率工作模式、最大用户工作模式下,灰度应用占用的系统资源总量是否大于预设的第一性能指标基线,及公众应用占用的系统资源总量是否大于预设的第二性能指标基线;若灰度应用占用的系统资源总量大于预设的第一性能指标基线,或者至少一个灰度应用返回错误时,则结束对应处理应用类型为灰度应用的业务请求的处理,并发送告警信息;若公众应用占用的系统资源总量大于预设的第二性能指标基线,或者至少一个公众应用返回错误时,则重启所有公众应用,并发送告警信息,从而实现系统的自我保护。
根据所述属于所述第一业务请求对应的处理应用类型的应用工作模式、所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用,具体采用如下方式:
获取预设信息周期内处理的所有第三业务请求,确定所有第三业务请求对应的请求种类及m;
确定γ(j)以及β(ij),并计算L(i,j)=β(ij)×γ(j)},其中,1≤j≤m,1≤i≤n;
若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大效率工作模式,或者,若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大性能工作模式,且获取随机数r,所述r不大于设定的最小负载算法调用概率,则计算L(k,j)=min∈N{L(i,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用;
若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大用户工作模式,或者,若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大性能工作模式,且获取随机数r,所述r小于设定的最小负载算法调用概率,则根据L(i,j)与y(i)的关系确定待选应用集合;
若所述待选应用集合中的元素数量为0,则随机选择属于所述第一业务请求对应的处理应用类型的一个应用作为选择的应用;
若所述待选应用集合中的元素数量为1,则选择所述待选应用集合中的属于所述第一业务请求对应的处理应用类型的应用作为选择的应用;
若所述待选应用集合中的元素数量多于1,则随机选择a和d,计算L(k,j)=min{L(a,j),L(d,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用。
这里,由于仅有小部分业务请求采用最小负载算法进行分发,因此,可以预设最小负载算法调用概率p=min{1/(eTupd/2eλ),CS};其中,Tupd为预设的信息周期,通常,Tupd的取值范围为1-15s,CS为预设常数,CS∈(0,1),CS用于限定最小负载算法调用概率p的上限取值,以防止出现群聚效应。
步骤S103:将所述第一业务请求分发给选择的应用。
本发明实施例中,接收第一业务请求,确定所述第一业务请求对应的处理应用类型以及属于所述第一业务请求对应的处理应用类型的应用;确定属于所述第一业务请求对应的处理应用类型的应用的数量n,根据所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用;将所述第一业务请求分发给选择的应用;如此,本发明实施例根据确定属于所述第一业务请求对应的处理应用类型的应用的数量n、业务请求种类以及系统当前负载情况从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用,能够有效地对业务请求进行分发,从而提高灰度发布系统的性能并缩减业务请求的平均响应时间。
为实现上述方法,本发明实施例提供了一种基于负载均衡实现灰度发布的系统,由于系统解决问题的原理与方法相似,因此,系统的实施可以参见前述方法的实施,重复之处不再赘述。
图2为本发明实施例中提供的基于负载均衡实现灰度发布的系统的结构示意图,如图2所示,该系统包括:第一确定模块200、选择模块201、分发模块202;其中,
所述第一确定模块200,用于接收第一业务请求,确定所述第一业务请求对应的处理应用类型以及属于所述第一业务请求对应的处理应用类型的应用,以及确定属于所述第一业务请求对应的处理应用类型的应用的数量n;
所述选择模块201,用于根据所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用;
所述分发模块202,用于将所述第一业务请求分发给选择的应用;
其中,灰度应用及公众应用部署在一组应用服务器中,且一台应用服务器中部署一个灰度应用及一个公众应用,所述灰度应用为用户提供灰度业务服务,所述公众应用为用户提供公众业务服务。
为了描述的方便,以上所述基于负载均衡实现灰度发布的系统的各部分以功能分为各种模块或单元分别描述。以上功能模块或单元的划分方式仅为本发明实施例给出的一种优选实现方式,功能模块或单元的划分方式不构成对本发明的限制。
具体实施中,所述处理应用类型为公众应用或灰度应用;
所述系统还包括:
第二确定模块203,用于统计预设时间段内接收到的所有第二业务请求;并根据所有第二业务请求及当前系统资源空闲率,确定属于处理应用类型为公众应用的应用数量PS以及属于处理应用类型为灰度应用的应用数量GS。
具体实施中,所述第二确定模块203,具体用于确定各个第二业务请求对应的处理应用类型,确定对应处理应用类型为公众应用的第二业务请求的数量PR和对应处理应用类型为灰度应用的第二业务请求的数量GR;
若当前系统资源空闲率大于第一阈值,则将PS确定为所述PR与预设的应用第一业务请求数C的商,将GS确定为所述GR与所述C的商;
若当前系统资源空闲率不大于第一阈值但大于第二阈值,则将所述PS确定为所述PR与所述C的商,将所述GS确定为所述GR与预设的应用第二业务请求数E的商;
若当前系统资源空闲率不大于第二阈值但大于第三阈值,则将所述PS确定为所述PR与所述E的商,将所述GS确定为所述GR与预设的应用第三业务请求数U的商;
若当前系统资源空闲率不大于第三阈值,则将所述PS确定为所述PR与所述U的商,将所述GS确定为所述GR与所述U的商;
其中,所述第一阈值大于所述第二阈值,且所述第二阈值大于所述第三阈值;所述U大于所述E,且所述E大于所述C。
具体实施中,所述选择模块201,具体用于获取预设信息周期内处理的所有第三业务请求,确定所有第三业务请求对应的请求种类及所有第三业务请求对应的请求种类数m;
确定每个请求种类的业务处理时间γ(j)以及所述预设信息周期内分发给各个属于所述第一业务请求对应的处理应用类型的应用的各个请求种类的业务请求的数量β(ij),并计算L(i,j)=β(ij)×γ(j),其中,j为第j个业务请求种类,且1≤j≤m,i为属于所述第一业务请求对应的处理应用类型的第i个应用,且1≤i≤n;
计算L(k,j)=min∈N{L(i,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用;
或者,
根据L(i,j)与预设的属于所述第一业务请求对应的处理应用类型的第i个应用的时间负载阈值y(i)的关系确定待选应用集合;
若所述待选应用集合中的元素数量为0,则随机选择属于所述第一业务请求对应的处理应用类型的一个应用作为选择的应用;
若所述待选应用集合中的元素数量为1,则选择所述待选应用集合中的属于所述第一业务请求对应的处理应用类型的应用作为选择的应用;
若所述待选应用集合中的元素数量多于1,则随机选择属于所述第一业务请求对应的处理应用类型的两个应用a和d,计算L(k,j)=min{L(a,j),L(d,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用。
具体实施中,所述第一确定模块200,还用于确定属于所述第一业务请求对应的处理应用类型的应用工作模式;
相应的,所述选择模块201,还用于根据所述属于所述第一业务请求对应的处理应用类型的应用工作模式、所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用。
具体实施中,所述处理应用类型为灰度应用或公众应用;所述应用工作模式包括最大性能工作模式、最大效率工作模式、最大用户工作模式;
所述第一确定模块200,具体用于确定当前系统资源空闲率大于第一阈值时,将属于处理应用类型为公众应用的应用工作模式确定为最大性能工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大性能工作模式;
确定当前系统资源空闲率不大于第一阈值但大于第二阈值时,将属于处理应用类型为公众应用的应用工作模式确定为最大性能工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大效率工作模式;
确定当前系统资源空闲率不大于第二阈值但大于第三阈值时,将属于处理应用类型为公众应用的应用工作模式确定为最大效率工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大用户工作模式;
确定当前系统资源空闲率不大于第三阈值时,将属于处理应用类型为公众应用的应用工作模式确定为最大用户工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大用户工作模式。
具体实施中,所述选择模块201,具体用于获取预设信息周期内处理的所有第三业务请求,确定所有第三业务请求对应的请求种类及m;
确定γ(j)以及β(ij),并计算L(i,j)=β(ij)×γ(j)},其中,1≤j≤m,1≤i≤n;
若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大效率工作模式,或者,若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大性能工作模式,且获取随机数r,所述r不大于设定的最小负载算法调用概率,则计算L(k,j)=min∈N{L(i,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用;
若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大用户工作模式,或者,若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大性能工作模式,且获取随机数r,所述r小于设定的最小负载算法调用概率,则根据L(i,j)与y(i)的关系确定待选应用集合;
若所述待选应用集合中的元素数量为0,则随机选择属于所述第一业务请求对应的处理应用类型的一个应用作为选择的应用;
若所述待选应用集合中的元素数量为1,则选择所述待选应用集合中的属于所述第一业务请求对应的处理应用类型的应用作为选择的应用;
若所述待选应用集合中的元素数量多于1,则随机选择a和d,计算L(k,j)=min{L(a,j),L(d,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用。
上述功能模块可以是软件功能模块,也可以是硬件设备。该基于负载均衡实现灰度发布的系统可以是分布式系统或集中式系统,若为分布式系统,则上述功能模块可分别由硬件设备实现,各硬件设备之间通过网络交互;若是集中式系统,则上述各功能模块可由软件实现,集成在一个硬件设备中。
在实际应用中,若所述基于负载均衡实现灰度发布的系统为分布式系统,则所述第一确定模块200可由该系统中的负载均衡器实现,所述选择模块201及所述分发模块202可由该系统中的软负载服务器实现。
在实际应用中,若所述基于负载均衡实现灰度发布的系统为集中式系统,则所述第一确定模块200、选择模块201、分发模块202、第二确定模块203可由位于服务器中的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA)实现。
以移动网上营业厅为例,原计划部署20台应用服务器,每台应用服务器运行一个应用,其中,10台为灰度应用服务器,10台为公众应用服务器,而本发明实施例中,将一个灰度应用及一个公众应用部署在一台应用服务器中,仅需要10台应用服务器即可承载所有灰度应用及公众应用;通过实验测试,原计划部署20台应用服务器,每台应用服务器运行一个应用的场景下,移动网上营业厅业务请求的平均响应时间为1.69s,而本发明实施例中,将一个灰度应用及一个公众应用部署在一台应用服务器的场景下,移动网上营业厅业务请求的平均响应时间为1.41s;由此可见,本发明实施例能够有效地对业务请求进行分发,从而提高灰度发布系统的性能并缩减业务请求的平均响应时间。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种基于负载均衡实现灰度发布的方法,其特征在于,所述方法包括:
接收第一业务请求,确定所述第一业务请求对应的处理应用类型以及属于所述第一业务请求对应的处理应用类型的应用;所述处理应用类型为公众应用或灰度应用;
确定属于所述第一业务请求对应的处理应用类型的应用的数量n,根据所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用;
将所述第一业务请求分发给选择的应用;
统计预设时间段内收到的所有第二业务请求;
根据所有第二业务请求及当前系统资源空闲率,确定属于处理应用类型为公众应用的应用数量PS以及属于处理应用类型为灰度应用的应用数量GS;
其中,所述根据所有第二业务请求及当前系统资源空闲率,确定属于处理应用类型为公众应用的应用数量PS以及属于处理应用类型为灰度应用的应用数量GS,包括:
确定各个第二业务请求对应的处理应用类型,确定对应处理应用类型为公众应用的第二业务请求的数量PR和对应处理应用类型为灰度应用的第二业务请求的数量GR;
若当前系统资源空闲率大于第一阈值,则将PS确定为所述PR与预设的应用第一业务请求数C的商,将GS确定为所述GR与所述C的商;
若当前系统资源空闲率不大于第一阈值但大于第二阈值,则将所述PS确定为所述PR与所述C的商,将所述GS确定为所述GR与预设的应用第二业务请求数E的商;
若当前系统资源空闲率不大于第二阈值但大于第三阈值,则将所述PS确定为所述PR与所述E的商,将所述GS确定为所述GR与预设的应用第三业务请求数U的商;
若当前系统资源空闲率不大于第三阈值,则将所述PS确定为所述PR与所述U的商,将所述GS确定为所述GR与所述U的商;
其中,所述第一阈值大于所述第二阈值,且所述第二阈值大于所述第三阈值;所述U大于所述E,且所述E大于所述C。
2.根据权利要求1所述的方法,其特征在于,所述根据所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用,包括:
获取预设信息周期内处理的所有第三业务请求,确定所有第三业务请求对应的请求种类及所有第三业务请求对应的请求种类数m;
确定每个请求种类的业务处理时间γ(j)以及所述预设信息周期内分发给各个属于所述第一业务请求对应的处理应用类型的应用的各个请求种类的业务请求的数量β(ij),并计算L(i,j)=β(ij)×γ(j),其中,j为第j个业务请求种类,且1≤j≤m,i为属于所述第一业务请求对应的处理应用类型的第i个应用,且1≤i≤n;
计算L(k,j)=min∈N{L(i,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用;
或者,
根据L(i,j)与预设的属于所述第一业务请求对应的处理应用类型的第i个应用的时间负载阈值y(i)的关系确定待选应用集合;
若所述待选应用集合中的元素数量为0,则随机选择属于所述第一业务请求对应的处理应用类型的一个应用作为选择的应用;
若所述待选应用集合中的元素数量为1,则选择所述待选应用集合中的属于所述第一业务请求对应的处理应用类型的应用作为选择的应用;
若所述待选应用集合中的元素数量多于1,则随机选择属于所述第一业务请求对应的处理应用类型的两个应用a和d,计算L(k,j)=min{L(a,j),L(d,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定属于所述第一业务请求对应的处理应用类型的应用工作模式;
所述根据所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用,包括:
根据所述属于所述第一业务请求对应的处理应用类型的应用工作模式、所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用。
4.根据权利要求3所述的方法,其特征在于,所述处理应用类型为灰度应用或公众应用;所述应用工作模式包括最大性能工作模式、最大效率工作模式、最大用户工作模式;
所述确定属于所述第一业务请求对应的处理应用类型的应用工作模式,包括:
若当前系统资源空闲率大于第一阈值,则将属于处理应用类型为公众应用的应用工作模式确定为最大性能工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大性能工作模式;
若当前系统资源空闲率不大于第一阈值但大于第二阈值,则将属于处理应用类型为公众应用的应用工作模式确定为最大性能工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大效率工作模式;
若当前系统资源空闲率不大于第二阈值但大于第三阈值,则将属于处理应用类型为公众应用的应用工作模式确定为最大效率工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大用户工作模式;
若当前系统资源空闲率不大于第三阈值,则将属于处理应用类型为公众应用的应用工作模式确定为最大用户工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大用户工作模式。
5.根据权利要求3或4所述的方法,其特征在于,所述根据所述属于所述第一业务请求对应的处理应用类型的应用工作模式、所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用,包括:
获取预设信息周期内处理的所有第三业务请求,确定所有第三业务请求对应的请求种类及所有第三业务请求对应的请求种类数m;
确定每个请求种类的业务处理时间γ(j)以及所述预设信息周期内分发给各个属于所述第一业务请求对应的处理应用类型的应用的各个请求种类的业务请求的数量β(ij),并计算L(i,j)=β(ij)×γ(j)},其中,j为第j个业务请求种类,且1≤j≤m,i为属于所述第一业务请求对应的处理应用类型的第i个应用,且1≤i≤n;
若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大效率工作模式,或者,若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大性能工作模式,且获取随机数r,所述r不大于设定的最小负载算法调用概率,则计算L(k,j)=min∈N{L(i,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用;
或者,
若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大用户工作模式,或者,若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大性能工作模式,且获取随机数r,所述r小于设定的最小负载算法调用概率,则根据L(i,j)与时间负载阈值y(i)的关系确定待选应用集合;
若所述待选应用集合中的元素数量为0,则随机选择属于所述第一业务请求对应的处理应用类型的一个应用作为选择的应用;
若所述待选应用集合中的元素数量为1,则选择所述待选应用集合中的属于所述第一业务请求对应的处理应用类型的应用作为选择的应用;
若所述待选应用集合中的元素数量多于1,则随机选择a和d,计算L(k,j)=min{L(a,j),L(d,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用。
6.一种基于负载均衡实现灰度发布的系统,其特征在于,所述系统包括:第一确定模块、选择模块、分发模块、第二确定模块;其中,
所述第一确定模块,用于接收第一业务请求,确定所述第一业务请求对应的处理应用类型以及属于所述第一业务请求对应的处理应用类型的应用,以及确定属于所述第一业务请求对应的处理应用类型的应用的数量n;所述处理应用类型为公众应用或灰度应用;
所述选择模块,用于根据所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用;
所述分发模块,用于将所述第一业务请求分发给选择的应用;
所述第二确定模块,具体用于统计预设时间段内收到的所有第二业务请求;并根据所有第二业务请求及当前系统资源空闲率,确定属于处理应用类型为公众应用的应用数量PS以及属于处理应用类型为灰度应用的应用数量GS;其中,所述根据所有第二业务请求及当前系统资源空闲率,确定属于处理应用类型为公众应用的应用数量PS以及属于处理应用类型为灰度应用的应用数量GS,包括:
用于确定各个第二业务请求对应的处理应用类型,确定对应处理应用类型为公众应用的第二业务请求的数量PR和对应处理应用类型为灰度应用的第二业务请求的数量GR;
若当前系统资源空闲率大于第一阈值,则将PS确定为所述PR与预设的应用第一业务请求数C的商,将GS确定为所述GR与所述C的商;
若当前系统资源空闲率不大于第一阈值但大于第二阈值,则将所述PS确定为所述PR与所述C的商,将所述GS确定为所述GR与预设的应用第二业务请求数E的商;
若当前系统资源空闲率不大于第二阈值但大于第三阈值,则将所述PS确定为所述PR与所述E的商,将所述GS确定为所述GR与预设的应用第三业务请求数U的商;
若当前系统资源空闲率不大于第三阈值,则将所述PS确定为所述PR与所述U的商,将所述GS确定为所述GR与所述U的商;
其中,所述第一阈值大于所述第二阈值,且所述第二阈值大于所述第三阈值;所述U大于所述E,且所述E大于所述C。
7.根据权利要求6所述的系统,其特征在于,所述选择模块,具体用于获取预设信息周期内处理的所有第三业务请求,确定所有第三业务请求对应的请求种类及所有第三业务请求对应的请求种类数m;
确定每个请求种类的业务处理时间γ(j)以及所述预设信息周期内分发给各个属于所述第一业务请求对应的处理应用类型的应用的各个请求种类的业务请求的数量β(ij),并计算L(i,j)=β(ij)×γ(j),其中,j为第j个业务请求种类,且1≤j≤m,i为属于所述第一业务请求对应的处理应用类型的第i个应用,且1≤i≤n;
计算L(k,j)=min∈N{L(i,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用;
或者,
根据L(i,j)与预设的属于所述第一业务请求对应的处理应用类型的第i个应用的时间负载阈值y(i)的关系确定待选应用集合;
若所述待选应用集合中的元素数量为0,则随机选择属于所述第一业务请求对应的处理应用类型的一个应用作为选择的应用;
若所述待选应用集合中的元素数量为1,则选择所述待选应用集合中的属于所述第一业务请求对应的处理应用类型的应用作为选择的应用;
若所述待选应用集合中的元素数量多于1,则随机选择属于所述第一业务请求对应的处理应用类型的两个应用a和d,计算L(k,j)=min{L(a,j),L(d,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用。
8.根据权利要求6所述的系统,其特征在于,所述第一确定模块,还用于确定属于所述第一业务请求对应的处理应用类型的应用工作模式;
相应的,所述选择模块,还用于根据所述属于所述第一业务请求对应的处理应用类型的应用工作模式、所述n从属于所述第一业务请求对应的处理应用类型的应用中选择一个应用。
9.根据权利要求8所述的系统,其特征在于,所述处理应用类型为灰度应用或公众应用;所述应用工作模式包括最大性能工作模式、最大效率工作模式、最大用户工作模式;
所述第一确定模块,具体用于确定当前系统资源空闲率大于第一阈值时,将属于处理应用类型为公众应用的应用工作模式确定为最大性能工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大性能工作模式;
确定当前系统资源空闲率不大于第一阈值但大于第二阈值时,将属于处理应用类型为公众应用的应用工作模式确定为最大性能工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大效率工作模式;
确定当前系统资源空闲率不大于第二阈值但大于第三阈值时,将属于处理应用类型为公众应用的应用工作模式确定为最大效率工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大用户工作模式;
确定当前系统资源空闲率不大于第三阈值时,将属于处理应用类型为公众应用的应用工作模式确定为最大用户工作模式,将属于处理应用类型为灰度应用的应用工作模式确定为最大用户工作模式。
10.根据权利要求8或9所述的系统,其特征在于,所述选择模块,具体用于获取预设信息周期内处理的所有第三业务请求,确定所有第三业务请求对应的请求种类及所有第三业务请求对应的请求种类数m;
确定每个请求种类的业务处理时间γ(j)以及所述预设信息周期内分发给各个属于所述第一业务请求对应的处理应用类型的应用的各个请求种类的业务请求的数量β(ij),并计算L(i,j)=β(ij)×γ(j)},其中,j为第j个业务请求种类,且1≤j≤m,i为属于所述第一业务请求对应的处理应用类型的第i个应用,且1≤i≤n;
若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大效率工作模式,或者,若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大性能工作模式,且获取随机数r,所述r不大于设定的最小负载算法调用概率,则计算L(k,j)=min∈N{L(i,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用;
或者,
若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大用户工作模式,或者,若所述属于所述第一业务请求对应的处理应用类型的应用工作模式为最大性能工作模式,且获取随机数r,所述r小于设定的最小负载算法调用概率,则根据L(i,j)与时间负载阈值y(i)的关系确定待选应用集合;
若所述待选应用集合中的元素数量为0,则随机选择属于所述第一业务请求对应的处理应用类型的一个应用作为选择的应用;
若所述待选应用集合中的元素数量为1,则选择所述待选应用集合中的属于所述第一业务请求对应的处理应用类型的应用作为选择的应用;
若所述待选应用集合中的元素数量多于1,则随机选择a和d,计算L(k,j)=min{L(a,j),L(d,j)},选择属于所述第一业务请求对应的处理应用类型的第k个应用为选择的应用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510124686.XA CN106027581B (zh) | 2015-03-20 | 2015-03-20 | 一种基于负载均衡实现灰度发布的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510124686.XA CN106027581B (zh) | 2015-03-20 | 2015-03-20 | 一种基于负载均衡实现灰度发布的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106027581A CN106027581A (zh) | 2016-10-12 |
CN106027581B true CN106027581B (zh) | 2019-12-10 |
Family
ID=57082374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510124686.XA Active CN106027581B (zh) | 2015-03-20 | 2015-03-20 | 一种基于负载均衡实现灰度发布的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106027581B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497454A (zh) * | 2011-12-31 | 2012-06-13 | 北京新媒传信科技有限公司 | 一种在应用服务平台系统中对应用进行灰度发布的方法 |
WO2012142854A1 (zh) * | 2011-04-18 | 2012-10-26 | 北京新媒传信科技有限公司 | 一种应用服务平台系统及其实现方法 |
CN102904824A (zh) * | 2012-09-25 | 2013-01-30 | 中国联合网络通信集团有限公司 | 服务提供实体选择方法及装置 |
CN103164202A (zh) * | 2011-12-15 | 2013-06-19 | 深圳市腾讯计算机系统有限公司 | 一种灰度发布方法和装置 |
CN103176790A (zh) * | 2011-12-26 | 2013-06-26 | 阿里巴巴集团控股有限公司 | 应用发布方法和系统 |
CN103379138A (zh) * | 2012-04-17 | 2013-10-30 | 深圳市腾讯计算机系统有限公司 | 实现负载均衡的方法及系统和灰度发布的方法及装置 |
-
2015
- 2015-03-20 CN CN201510124686.XA patent/CN106027581B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012142854A1 (zh) * | 2011-04-18 | 2012-10-26 | 北京新媒传信科技有限公司 | 一种应用服务平台系统及其实现方法 |
CN103164202A (zh) * | 2011-12-15 | 2013-06-19 | 深圳市腾讯计算机系统有限公司 | 一种灰度发布方法和装置 |
CN103176790A (zh) * | 2011-12-26 | 2013-06-26 | 阿里巴巴集团控股有限公司 | 应用发布方法和系统 |
CN102497454A (zh) * | 2011-12-31 | 2012-06-13 | 北京新媒传信科技有限公司 | 一种在应用服务平台系统中对应用进行灰度发布的方法 |
CN103379138A (zh) * | 2012-04-17 | 2013-10-30 | 深圳市腾讯计算机系统有限公司 | 实现负载均衡的方法及系统和灰度发布的方法及装置 |
CN102904824A (zh) * | 2012-09-25 | 2013-01-30 | 中国联合网络通信集团有限公司 | 服务提供实体选择方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106027581A (zh) | 2016-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9081624B2 (en) | Automatic load balancing, such as for hosted applications | |
US7627618B2 (en) | System for managing data collection processes | |
CN107341050B (zh) | 基于动态线程池的服务处理方法和装置 | |
CN106953940B (zh) | Dns服务器及配置加载方法、网络系统、域名解析方法及系统 | |
CN109246229A (zh) | 一种分发资源获取请求的方法和装置 | |
CN107819797B (zh) | 访问请求处理方法和装置 | |
CN109800204B (zh) | 数据分配方法及相关产品 | |
CN108306874B (zh) | 服务接口访问限流方法及装置 | |
CN111131486B (zh) | 执行节点的负载调节方法、装置、服务器及存储介质 | |
CN104239150B (zh) | 一种硬件资源调整的方法及装置 | |
CN111880939A (zh) | 容器动态迁移方法、装置及电子设备 | |
CN106817432A (zh) | 云计算环境下虚拟资源弹性伸展的方法,系统和设备 | |
US20140359182A1 (en) | Methods and apparatus facilitating access to storage among multiple computers | |
CN104202305A (zh) | 一种转码处理方法、装置及服务器 | |
CN109800085B (zh) | 资源配置的检测方法、装置、存储介质和电子设备 | |
CN111385328B (zh) | 业务请求的处理方法、系统及电子设备 | |
CN105335313A (zh) | 一种基础数据的传输方法及装置 | |
CN103297511A (zh) | 高度动态环境下的客户端/服务器的调度方法和系统 | |
CN106027581B (zh) | 一种基于负载均衡实现灰度发布的方法及系统 | |
EP1867081B1 (en) | Distributed redundancy capacity licensing in a telecommunication network element | |
CN104735134B (zh) | 一种用于提供计算服务的方法和装置 | |
CN108200185B (zh) | 一种实现负载均衡的方法及装置 | |
CN104243587A (zh) | 一种消息服务器负载均衡方法及系统 | |
CN115002117B (zh) | 内容分发网络动态调度方法、系统、设备及存储介质 | |
CN115842828A (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 |