动态业务分发方法及系统
技术领域
本发明涉及计算机领域,尤其涉及一种动态业务分发方法及系统。
背景技术
随着互联网业务规模的扩大,所需硬件投入成本也变得更高。所以硬件投入成本需要进入精细化的控制时代,以最小的硬件成本支撑业务发展成为重点课题。由于大多数互联网业务都基于在分布式系统集群上运行,分布式系统集群由多台服务器组成,所以互联网业务规模的扩大,部署的服务器的数量也变大,因此控制服务器的成本可以有效地降低业务的硬件成本。于是获取服务器的最大负载流量应运而生。
现有的互联网分布式系统为保证分布式系统安全运行,当业务徒增的情况下,会在分布式系统集群里增加一定数量的服务器,以缓解服务器处理业务时负载流量瓶颈;如电子商务网站(例如,淘宝网等)的定期或不定期的促销活动使得业务徒增。但是,增加服务器会提高成本,事实上互联网分布式系统的服务器存在利用率偏低的现象,所以增加服务器有点浪费资源。
现有的通过线下压测(对线下模拟互联网环境的高并发进行压力测试),可以获取服务器的处理业务时负载流量上限,进而得出线上生产环境所需部署的集群规模,即所需部署多少台服务器。但是在互联网平台中,由于互联网业务在不断创新,分布式系统的可支撑容量规模也在时刻发生变化,所以,通过线下压测不能非常准确地获取线上服务器的负载流量,通过线下压测获取的结果对分布式系统进行部署扩容或缩容的运维工作帮助有限。
发明内容
本发明的目的是提供一种动态业务分发方法及系统,可以准确地获取线上服务器的负载流量,根据获取的负载流量对系统进行部署服务器,从而节省了成本。
为实现上述目的,本发明一方面提供了一种动态业务分发方法,该方法包括:
负载均衡器接收用户发送的业务请求;
向服务器分发所述业务请求,从而获取所述服务器处理所述业务请求的当前最大负载流量值;
所述服务器在所述当前最大负载流量值下处理所述业务请求时,获取所述服务器的当前工作参数;
检测所述服务器的当前工作参数是否大于预设值;
当所述当前工作参数不大于所述预设值时,将所述服务器的当前业务分配比例增加为第一业务分配比例;所述负载均衡器按照所述第一业务分配比例,向所述服务器分发所述业务请求。
另一方面提供了一种动态业务分发系统,该系统包括:
接收单元,用于负载均衡器接收用户发送的业务请求;
分发单元,用于向服务器分发所述业务请求,从而获取所述服务器处理所述业务请求的当前最大负载流量值;
获取单元,用于所述服务器在所述当前最大负载流量值下处理所述业务请求时,获取所述服务器的当前工作参数;
检测单元,用于检测所述服务器的当前工作参数是否大于预设值;
调整单元,用于当所述当前工作参数不大于所述预设值时,将所述服务器的当前业务分配比例增加为第一业务分配比例;所述负载均衡器按照所述第一业务分配比例,向所述服务器分发所述业务请求。
本发明实施例提供的动态业务分发方法及系统,通过获取服务器处理业务请求的当前最大负载流量值,以及获取服务器在当前最大负载流量值下处理业务请求时的当前工作参数,并所述当前工作参数不大于所述预设值时,将所述服务器的当前业务分配比例增加为第一业务分配比例,按照所述第一业务分配比例,向所述服务器分发所述业务请求。可以实时地获取线上服务器的当前负载流量,根据获取的当前负载流量对系统进行部署服务器,避免了服务器不被充分利用而导致资源浪费,从而节省了成本。通过检测所述服务器的当前工作参数是否大于预设值,可以实时地检测服务器的当前运行状态,从而根据服务器的当前运行状态向服务器分发业务请求,避免服务器受到损害,延长了服务器的使用寿命时间。
附图说明
图1为本发明实施例一提供的动态业务分发方法流程图;
图2为本发明实施例二提供的动态业务分发方法流程图;
图3为本发明实施例三提供的动态业务分发系统的示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明实施例提供的动态业务分发方法,适用于对服务器进行线上压测(对线上互联网环境的高并发进行压力测试)后,获取服务器的最大负载流量,然后负载均衡设备根据获取的服务器的最大负载流量,为服务器分发请求量。
在本申请实施例中,通过对服务器进行线上压测,可以准确地获取线上服务器的负载流量,避免由于互联网业务在不断创新,获取的服务器的负载流量不准确的问题,根据获取的负载流量对系统进行部署服务器,避免了服务器的利用率偏低,而导致资源浪费的现象,从而节省了成本,通过向服务器以递增模式分发请求量,延长了服务器的使用寿命时间,避免请求的徒增导致服务器垮掉的问题。
线上压测,通过对线上的互联网环境的请求进行流量引导,指向目标服务器(需要获取负载流量的服务器),该目标服务器发送超出原本处理请求的流量,通过这种形式来无限逼近服务器的处理请求的容量上限,获取线上服务器的最大负载流量。
本申请实施例以电子商务网站(如淘宝网)为例,临近双十一时,商家的促销活动使得淘宝网业务量徒增,用户的请求量快速增长,负载均衡设备不得不给一个服务器分发多个请求,可是负载均衡设备又不知道服务器能处理多少个请求的请求量。这里的服务器能处理多少个请求所耗的流量就是服务器的负载流量值。例如:服务器原来能处理100M的请求量,但由于用户的请求量快速增长,使得原有的服务器规模无法支撑这么多的请求量,负载均衡设备要么分发100M以上的请求量如110M请求量给该服务器,要么购买新的服务器,所以需要获取该服务器是否能处理110M请求量,这时,就需要对该服务器进行压测,压测的同时还需要对该服务器进行容量获取,获取该服务器最大能处理多少请求量,即对该服务器进行基于压测的容量获取。下面对具体的实现方式进行详细地介绍。
实施例一
参见图1所示的动态业务分发方法流程图,本申请实施例首先提供了一种动态业务分发方法,该方法的所有步骤都是线上实施的,该方法可以包括以下几个步骤:
S101:负载均衡器接收用户发送的业务请求。
负载均衡设备,用于将用户发送的业务请求均匀分发给多台服务器,提高服务器响应请求的响应速度,从而达到负载均衡的目的。
这里用户发送的业务请求,是在前台客户端发送的,前台客户端将业务请求发送给负载均衡设备,负载均衡设备再将业务请求发送给服务器,服务器处理业务请求并作出响应。前台客户端例如淘宝网网页,用户在淘宝网网页上发送的支付请求或者查询请求。
S102:向服务器分发所述业务请求,从而获取所述服务器处理所述业务请求的当前最大负载流量值。
负载均衡设备向服务器分发所述业务请求,从而获取所述服务器处理所述业务请求的当前最大负载流量值。
负载均衡设备获取所述服务器处理所述业务请求的当前最大负载流量值具体包括:统计在负载均衡设备向服务器每次分发所述业务请求时,获取所述服务器每次处理所述业务请求的负载流量值,得到服务器处理所述业务请求的当前最大负载流量值。
例如:负载均衡设备统计了10次向服务器分发业务请求时,获取所述服务器10次处理所述业务请求的负载流量值,从这10次的服务器的负载流量值选出一个最大负载流量值100MB/S,得到服务器处理所述业务请求的当前最大负载流量值100MB/S。
S103:所述服务器在所述当前最大负载流量值下处理所述业务请求时,负载均衡设备获取所述服务器的当前工作参数。
所述当前工作参数为:所述服务器的处理器的利用率,或者所述服务器的响应时间。
负载均衡设备获取所述服务器在所述当前最大负载流量值下处理所述业务请求时的当前工作参数。
例如:获取服务器在当前最大负载流量值为100MB/S的情况下的处理器的利用率为60%。如果在时间阈值内,获取服务器在当前负载流量下的工作参数不稳定,则获取工作参数的高频值。例如,在一天内,服务器在当前最大负载流量值下的处理器的利用率中,有10次服务器的处理器的利用率为60%,有2次服务器的处理器的利用率为70%,则获取的服务器在当前负载流量下的工作参数为60%。
S104:检测所述服务器的当前工作参数是否大于预设值。
负载均衡设备检测所述服务器的当前工作参数是否大于预设值。该步骤的检测所述服务器的当前工作参数是在线检测,以便准确地检测到线上服务器的运行状况。
预设值,预先设定工作参数的预设值,检测所述服务器的处理器的利用率是否大于预设值,或者所述服务器的响应时间是否大于预设值。
例如:预设服务器的处理器的利用率的预设值为80%,预设服务器的响应时间的预设值为2秒,检测服务器的处理器的利用率是否大于80%,或者所述服务器的响应时间是否大于2秒。
通过步骤S103和S104,通过获取所述服务器在当前最大负载流量下的当前工作参数,检测所述服务器的工作参数是否大于预设值,可以实时地检测服务器的当前运行状态,根据服务器的当前运行状态向服务器分发业务请求,避免服务器受到损害,延长了服务器的使用寿命时间。
S105:当所述当前工作参数不大于所述预设值时,将所述服务器的当前业务分配比例增加为第一业务分配比例;负载均衡器按照所述第一业务分配比例,向所述服务器分发所述业务请求。
当所述服务器的工作参数不大于所述预设值时,负载均衡设备将所述服务器的当前业务分配比例增加为第一业务分配比例;负载均衡器按照所述第一业务分配比例,向所述服务器分发所述业务请求。即循环执行步骤S102。
例如:当服务器的当前工作参数60%不大于所述预设值80%时,负载均衡设备每次每秒分发给服务器的请求量增加当前业务分配比例的10%,当前负载均衡设备分发给服务器的请求量为100MB/S,增加当前业务分配比例的10%后,则第一业务分配比例为110MB/S,负载均衡器按照所述第一业务分配比例110MB/S,向所述服务器分发所述业务请求,再循环执行步骤S102。第一次循环执行步骤S102时,检测服务器在当前最大负载流量值110MB/S下,处理所述业务请求时的工作参数不大于所述预设值时,将所述服务器的当前业务分配比例110MB/S增加10%后,则第一业务分配比例为110*(1+10%)=121MB/S,按照所述第一业务分配比例121MB/S,向所述服务器分发所述业务请求。
可选地,所述将所述服务器的当前业务分配比例增加为第一业务分配比例具体包括:按照调整次数,逐次将所述服务器的当前业务分配比例增加为第一业务分配比例。
例如:负载均衡器逐次将所述服务器的当前业务分配比例增加为当前业务分配比例的10%,即每秒分发给服务器的请求量增加10%,即请求量从100MB/S增加到110MB/S,而不是一下子将当前业务分配比例增加1倍,即请求量从100MB/S增加到200MB/S,如果每秒分发给服务器的请求量突然从100MB变为200MB,服务器很有可能处理的不稳定,导致业务处理异常失败。所以本申请实施例按照调整次数,逐次将所述服务器的当前业务分配比例增加为第一业务分配比例,避免业务处理异常失败、并最大化利用服务器的实际处理能力。
优选地,当所述当前工作参数大于所述预设值时,将所述服务器的当前业务分配比例减小为第二业务分配比例;所述负载均衡器按照所述第二业务分配比例,向所述服务器分发所述业务请求。
第二业务分配比例:最后一次当前工作参数不大于所述预设值时的第一业务分配比例。
例如:当第十次循环执行步骤S102后,获取所述服务器处理所述业务请求的当前最大负载流量值为100*(1+10%)10=259MB/S,检测服务器在当前最大负载流量值259MB/S下,处理所述业务请求时的处理器的利用率的预设值大于80%时,将所述服务器的当前业务分配比例减小为最后一次当前工作参数不大于所述预设值时的第一业务分配比例,即当前业务分配比例减小10%后,则第二业务分配比例为259*(1-10%)=233MB/S,按照所述第二业务分配比例233MB/S,向所述服务器分发所述业务请求。则服务器处理业务请求的当前的最大负载流量值为233MB。
最后,根据获取的服务器处理业务请求的当前最大负载流量对系统进行部署服务器,避免了服务器不被充分利用而导致资源浪费,从而节省了成本。
例如:负载均衡设备在1秒内接收了1000MB的请求量,在没有通过本实施例提供的动态业务分发方法之前,原本需要10个服务器来处理这1000MB的请求量(假设这10个服务器具有同样的配置),但使用了本实施例提供的动态业务分发方法之后,只需要5个服务器来处理这1000MB的请求量。因此节省了成本。
因此,本发明实施例一提供的动态业务分发方法,通过获取服务器处理业务请求的当前最大负载流量值,以及获取服务器在当前最大负载流量值下处理业务请求时的当前工作参数,并所述当前工作参数不大于所述预设值时,将所述服务器的当前业务分配比例增加为第一业务分配比例,按照所述第一业务分配比例,向所述服务器分发所述业务请求。可以实时地获取线上服务器的当前负载流量,根据获取的当前负载流量对系统进行部署服务器,避免了服务器不被充分利用而导致资源浪费,从而节省了成本。通过检测所述服务器的当前工作参数是否大于预设值,可以实时地检测服务器的当前运行状态,从而根据服务器的当前运行状态向服务器分发业务请求,避免服务器受到损害,延长了服务器的使用寿命时间。
实施例二
参见图2所示的动态业务分发方法的流程图,本申请实施例提供了一种动态业务分发方法的具体处理流程图,如图2所示,该方法可以包括以下几个步骤:
S201:负载均衡器接收用户发送的业务请求。
S202:向服务器分发业务请求,从而获取服务器处理业务请求的当前最大负载流量值。
S203:服务器在当前最大负载流量值下处理业务请求时,负载均衡设备获取服务器的当前工作参数。
S204:检测服务器的当前工作参数是否大于预设值。如果不大于预设值,则进入S205,否则,如果大于预设值,则进入S206。
S205:当所述当前工作参数不大于预设值时,将服务器的当前业务分配比例增加为第一业务分配比例;负载均衡器按照第一业务分配比例,向服务器分发业务请求。循环执行S202。
S206:当所述当前工作参数大于预设值时,将服务器的当前业务分配比例减小为第二业务分配比例;负载均衡器按照第二业务分配比例,向服务器分发业务请求。
这样,本发明实施例二提供的动态业务分发方法,可以实时地获取线上服务器的当前负载流量,根据获取的当前负载流量对系统进行部署服务器,避免了服务器不被充分利用而导致资源浪费,从而节省了成本。通过检测所述服务器的当前工作参数是否大于预设值,可以实时地检测服务器的当前运行状态,从而根据服务器的当前运行状态向服务器分发业务请求,有效地避免了服务器突然负载大量请求量而死机,避免服务器受到损害,延长了服务器的使用寿命时间。
实施例三
参见图3所示的动态业务分发系统的示意图,本申请实施例提供了一种动态业务分发系统的示意图,如图3所示,该系统包括:接收单元301、分发单元302、获取单元303、检测单元304、调整单元305。
接收单元301,用于负载均衡器接收用户发送的业务请求;
分发单元302,用于向服务器分发所述业务请求,从而获取所述服务器处理所述业务请求的当前最大负载流量值;
获取单元303,用于所述服务器在所述当前最大负载流量值下处理所述业务请求时,获取所述服务器的当前工作参数;
检测单元304,用于检测所述服务器的当前工作参数是否大于预设值;
调整单元305,用于当所述当前工作参数不大于所述预设值时,将所述服务器的当前业务分配比例增加为第一业务分配比例;所述负载均衡器按照所述第一业务分配比例,向所述服务器分发所述业务请求。
所述调整单元305还用于:当所述当前工作参数大于所述预设值时,将所述服务器的当前业务分配比例减小为第二业务分配比例;所述负载均衡器按照所述第二业务分配比例,向所述服务器分发所述业务请求。
所述调整单元305还用于:按照调整次数,逐次将所述服务器的当前业务分配比例增加为第一业务分配比例。
因此,本发明实施例提供的动态业务分发系统,通过获取服务器处理业务请求的当前最大负载流量值,以及获取服务器在当前最大负载流量值下处理业务请求时的当前工作参数,并所述当前工作参数不大于所述预设值时,将所述服务器的当前业务分配比例增加为第一业务分配比例,按照所述第一业务分配比例,向所述服务器分发所述业务请求。可以实时地获取线上服务器的当前负载流量,根据获取的当前负载流量对系统进行部署服务器,避免了服务器不被充分利用而导致资源浪费,从而节省了成本。通过检测所述服务器的当前工作参数是否大于预设值,可以实时地检测服务器的当前运行状态,从而根据服务器的当前运行状态向服务器分发业务请求,避免服务器受到损害,延长了服务器的使用寿命时间。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。