CN111092915A - 服务器系统 - Google Patents
服务器系统 Download PDFInfo
- Publication number
- CN111092915A CN111092915A CN201811235686.7A CN201811235686A CN111092915A CN 111092915 A CN111092915 A CN 111092915A CN 201811235686 A CN201811235686 A CN 201811235686A CN 111092915 A CN111092915 A CN 111092915A
- Authority
- CN
- China
- Prior art keywords
- dynamic configuration
- configuration service
- service unit
- application server
- server
- 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.)
- Pending
Links
Images
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
- H04L67/1004—Server selection for load balancing
-
- 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
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- 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
- H04L67/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Abstract
本发明实施例提供一种服务器系统。其包括:负载均衡服务器,用于对接收到的、需要通过动态配置服务单元执行的任务进行负载均衡,以确定执行任务的动态配置服务单元,并将任务分发至确定的服务单元;应用服务器中配置有至少一个动态配置服务单元,应用服务器用于从负载均衡服务器接收分发的任务,并将任务分配给本地对应的动态配置服务单元执行;以及采集本地运行数据,并向中央管理设备发送采集的本地运行数据;中央管理设备用于接收应用服务器发送的本地运行数据,并在根据本地运行数据确定需要对应用服务器中的动态配置服务单元进行调整时,向应用服务器发送调整指令;应用服务器还用于根据接收的调整指令,对动态配置服务单元进行动态调整。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种服务器系统。
背景技术
互联网服务存在流量热点现象,例如,因活动推广或者突发事件等原因导致网站流量突发上涨。这时网站服务器往往因资源消耗殆尽出现宕机情况。为了解决这一问题,现有技术中通常采用预先准备一定数量的备用服务器的方式。当出现流量突发上涨的情况时,启动备用服务器,以对服务器进行扩容,应对突发的流量。不过这种方式存在着扩容成本高和严重的资源浪费问题。
发明内容
有鉴于此,本发明实施例所解决的技术问题之一在于提供一种服务器系统,用以克服现有技术中的使用备用服务器进行扩容造成的资源浪费的问题。
本发明实施例提供一种服务器系统,其包括:负载均衡服务器、应用服务器和中央管理设备;其中,所述负载均衡服务器,用于对接收到的、需要通过动态配置服务单元执行的任务进行负载均衡,以确定执行所述任务的动态配置服务单元,并将所述任务分发至确定的所述动态配置服务单元;所述应用服务器中配置有至少一个动态配置服务单元,所述应用服务器用于从所述负载均衡服务器接收分发的所述任务,并将所述任务分配给本地对应的动态配置服务单元执行;以及,采集本地运行数据,并向所述中央管理设备发送采集的本地运行数据;所述中央管理设备,用于接收所述应用服务器发送的所述本地运行数据,并在根据所述本地运行数据确定需要对所述应用服务器中的动态配置服务单元进行调整时,向所述应用服务器发送调整指令;所述应用服务器,还用于根据接收的所述调整指令,对动态配置服务单元进行动态调整。
可选地,所述中央管理设备,还用于将所述调整指令的信息发送到所述负载均衡服务器;所述负载均衡服务器,还用于从所述调整指令的信息中获取进行了动态调整的动态配置服务单元的调整信息;根据所述调整信息更新本地的负载均衡策略,并根据更新后的所述负载均衡策略对所有动态配置服务单元进行负载均衡。
可选地,所述本地运行数据包括下列运行参数中的至少之一:所述应用服务器的CPU使用率、内存使用率、和处于激活状态的各个动态配置服务单元中的各应用的任务量;所述本地运行数据还包括下列状态参数中的至少之一:各动态配置服务单元的激活状态和存活状态。
可选地,所述中央管理设备,用于接收所述应用服务器发送的所述本地运行数据,将所述本地运行数据中的至少一个运行参数与对应的设定阈值进行比较,以根据比较结果确定是否需要对所述应用服务器中的动态配置服务单元进行动态调整,并在确定需要进行动态调整时,生成对应的调整指令,并向所述应用服务器发送调整指令。
可选地,所述中央管理设备,用于接收所述应用服务器发送的所述本地运行数据,并在比较所述本地运行数据中的所述处于激活状态的各个动态配置服务单元中的各应用的任务量和设定任务量阈值,确定需要对所述应用服务器中的动态配置服务单元中的应用进行调整时,向所述应用服务器发送针对所述应用的调整指令。
可选地,所述中央管理设备,还用于在比较本地运行数据中的CPU使用率与设定CPU阈值、或比较本地运行数据中的内存使用率与设定内存阈值,确定需要对所述应用服务器中的动态配置服务单元进行增加或删除调整时,向所述应用服务器发送增加或删除动态配置服务单元的调整指令。
可选地,所述中央管理设备还用于在所述确定需要对所述应用服务器中的动态配置服务单元进行增加或删除调整时,先根据所述本地运行数据中的各所述动态配置服务单元的存活状态,确定所述应用服务器中的动态配置服务单元中需要进行增加或删除的动态配置服务单元;再根据确定的所述动态配置服务单元生成所述调整指令并向所述应用服务器发送。
可选地,所述应用服务器中还包括本地管理单元;所述应用服务器通过所述本地管理单元采集所述本地运行数据,并将所述本地运行数据发送给所述中央管理设备;以及,通过所述本地管理单元接收所述中央管理设备发送的所述调整指令,并根据所述调整指令,对所述调整指令所指示的动态配置服务单元和/或所述动态配置服务单元中的应用进行动态调整。
可选地,所述应用服务器中的所述动态配置服务单元通过其中的路由器进程对所述任务进行动态路由,根据动态路由结果对所述动态配置服务单元中的应用执行的任务进行动态调整。
可选地,所述应用服务器中的所述动态配置服务单元通过创建新的应用,并通过所述路由器进程对所述任务的动态路由,将所述任务分配至所述新的应用执行,以对所述动态配置服务单元中的应用执行的任务进行动态调整。
由以上技术方案可见,本发明实施例的服务器系统,通过负载均衡服务器接收任务,并将任务分发给确定的动态配置服务单元,实现负载均衡。应用服务器中的动态配置服务单元可以对负载均衡服务器分发的任务进行处理,同时能够收集本地运行数据并发送给中央管理设备。中央管理设备可以根据本地运行数据确定是否需要对应用服务器中的动态配置服务单元进行调整。在需要进行调整时,给应用服务器发送调整指令。由于应用服务器中的动态配置服务单元以及其上部署的应用可以通过可以动态配置的配置文件来实现启动和停止,同时负载均衡服务器仍可以接收和分发任务,应用服务器中的其他动态配置服务单元以及其上部署的应用仍可以处理任务,因此能够在调整过程中不中断服务。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1示出了本发明的实施例一的服务器系统的结构示意图。
图2示出了本发明的实施例二的服务器系统的结构示意图。
具体实施方式
当然,实施本发明实施例的任一技术方案必不一定需要同时达到以上的所有优点。
为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
下面结合本发明实施例附图进一步说明本发明实施例具体实现。
实施例一
图1示出了本发明的实施例一的服务器系统的结构示意图。如图1所示,本实施例的服务器系统包括负载均衡服务器102、应用服务器104和中央管理设备106。
其中,所述负载均衡服务器102,用于对接收到的、需要通过动态配置服务单元执行的任务进行负载均衡,以确定执行所述任务的动态配置服务单元,并将所述任务分发至确定的所述动态配置服务单元;所述应用服务器104中配置有至少一个动态配置服务单元,所述应用服务器104用于从所述负载均衡服务器102接收分发的所述任务,并将所述任务分配给本地对应的动态配置服务单元执行;以及,采集本地运行数据,并向所述中央管理设备106发送采集的本地运行数据;所述中央管理设备106,用于接收所述应用服务器104发送的所述本地运行数据,并在根据所述本地运行数据确定需要对所述应用服务器104中的动态配置服务单元进行调整时,向所述应用服务器104发送调整指令;所述应用服务器104,还用于根据接收的所述调整指令,对动态配置服务单元进行动态调整。
本实施例的负载均衡服务器、应用服务器和中央管理设备均可以是一台设备,或者可以是由多台设备组成的设备集群。需要说明的是,本发明实施例中,若无特殊说明,“多个”、“多台”等与“多”有关的数量意指两个及两个以上。
负载均衡服务器用于统一接收需要通过动态配置服务单元执行的任务(例如接收来自客户端的应用程序请求获取网页的请求),并将接收到的任务分发至应用服务器中适当的动态配置服务单元,以实现负载均衡。接收的任务包括但不限于请求消息,如来自客户端的请求查询数据的HTTP请求、请求获取数据的HTTP请求等。
应用服务器通过配置在其上的动态配置服务单元为客户端提供服务器,例如,对来自客户端的HTTP请求进行处理,并返回结果。
在一种具体实施方式中,应用服务器中配置的动态配置服务单元中至少一个为Nginx Unit。每个Nginx unit内均部署有至少一个应用,用于为对应的客户端应用程序提供服务,例如响应客户端应用程序的HTTP请求。
Nginx unit是一个开源的、以Nginx为基础的、支持多语言的动态Web应用服务单元,它支持Python、PHP、Perl、Ruby和Go等多语言应用程序,Nginx unit可以使用rest api进行动态配置,其没有静态配置文件,所有配置更改都是在内存中发生,由此实现在部署Nginx unit或在Nginx unit上部署应用时,可以不中断服务,即实现不停机更新。
基于Nginx unit的动态配置服务单元实现更新时不中断服务的原理为:NginxUnit内部的路由器进程可以将HTTP请求根据配置文件实现动态路由,通过加载新配置文件会创建新服务(该新服务可以由新启动的动态配置服务单元中配置的应用提供,也可以有在原有动态配置服务单元中配置的新应用提供)并由路由器进程引入HTTP请求;此时原配置文件对应的旧有服务并不会直接停止故不会损失流量,但不再引入新的HTTP请求。而同时,Nginx unit可以利用RESTful API实现无损动态服务配置文件更改,从而确保配置文件更改过程中不需中断服务,且路由器进程根据配置文件进行动态路由时也可以不中断服务。
应用服务器的本地运行数据用于指示应用服务器的当前状态,本地运行数据包括下列运行参数中的至少之一:所述应用服务器的CPU使用率、内存使用率、和处于激活状态的各个动态配置服务单元中的各应用的任务量。根据需要,所述本地运行数据还可以包括下列状态参数中的至少之一:各动态配置服务单元的激活状态和存活状态。
在一种可行方式中,中央管理设备用于接收应用服务器发送来的本地运行数据,还用于根据接收到的应用服务器的本地运行数据确定是否需要对应用服务器中的动态配置服务单元进行调整。中央管理设备可以通过有线数据传输或无线数据传输等方式实现与应用服务器的通讯。当应用服务器存在多个时,中央管理设备与各个应用服务器可以采用不同的通讯方式,也可以采用相同的通讯方式。
中央管理设备根据接收到的本地运行数据确定是否需要对应用服务器中的动态配置服务单元进行调整,当确定需要调整时,向应用服务器发送调整指令,从而可以在应用服务器存在资源占用过多、动态配置服务单元死亡、或者有突发流量等的情况时,及时调整应用服务器,保证能够为客户端提供可靠稳定的服务,确保用户能够正常使用客户端的应用程序。
应用服务器接收到调整指令,并根据调整指令的指示对动态配置服务单元进行调整。根据不同的调整需要,调整指令可以指示进行硬件资源调整,如增加或减少应用服务器的数量,也可以是动态配置服务单元或者部署在其中的应用的增加或减少。
例如,当本地运行数据中的CPU使用率超过预设的阈值时,中央管理设备据此确定需要进行调整,并生成指示在新的服务器上部署新的动态配置服务单元的调整指令,以保证有充足的硬件资源供使用,防止由于CPU使用率过高而造成宕机,进而保证可靠性。
由于在应用服务器响应调整指令,启动或停止的动态配置服务单元或者其中部署的应用时,负载均衡服务器可以正常接收任务并分发任务,而应用服务器上原有的动态配置服务单元上部署的应用也可以正常执行被分发的任务,因此实现了停机调整,即实现了不中断应用的容量调整,不会影响客户端的使用,使用户的使用体验更好。同时,可以及时迅速地调整服务器容量,有效应对突发流量变化的情况,又能够避免资源浪费。
本实施例的服务器系统进行容量调整的方式,相较于现有技术中采用云原生计算基金会(Cloud Native Computing Foundation)提供的kubernetes容器编排技术进行扩容,避免了现有的kubernetes容器编排技术存在着严格依赖容器化技术,需要管理容器依赖的镜像文件的问题,也避免了需要应用配置管理、日志处理麻烦的问题。解决了整套体系需要维护较多的系统,技术准入门槛高且架构复杂的问题。
本实施例的服务器系统,通过负载均衡服务器接收任务,并将任务分发给确定的动态配置服务单元,实现负载均衡。应用服务器中的动态配置服务单元可以对负载均衡服务器分发的任务进行处理,同时能够收集本地运行数据并发送给中央管理设备。中央管理设备可以根据本地运行数据确定是否需要对应用服务器中的动态配置服务单元进行调整。在需要进行调整时,给应用服务器发送调整指令。由于应用服务器中的动态配置服务单元以及其上部署的应用可以通过可以动态配置的配置文件来实现启动和停止,同时负载均衡服务器仍可以接收和分发任务,应用服务器中的其他动态配置服务单元以及其上部署的应用仍可以处理任务,因此能够在调整过程中不中断服务。
实施例二
图2示出了本发明实施例二的服务器系统的结构示意图。
本实施例以一个具体实例的形式,对本发明提供的服务器系统进行说明。
如图2所示,本实施例的服务器系统包括负载均衡服务器202、应用服务器204和中央管理设备206。
所述负载均衡服务器202,用于对接收到的、需要通过动态配置服务单元执行的任务进行负载均衡,以确定执行所述任务的动态配置服务单元,并将所述任务分发至确定的所述动态配置服务单元。
所述应用服务器204中配置有至少一个动态配置服务单元,所述应用服务器204用于从所述负载均衡服务器202接收分发的所述任务,并将所述任务分配给本地对应的动态配置服务单元执行;以及,采集本地运行数据,并向所述中央管理设备206发送采集的本地运行数据。
所述中央管理设备206,用于接收所述应用服务器204发送的所述本地运行数据,并在根据所述本地运行数据确定需要对所述应用服务器204中的动态配置服务单元进行调整时,向所述应用服务器204发送调整指令,所述应用服务器204,还用于根据接收的所述调整指令,对动态配置服务单元进行动态调整。
在一种可行方式中,当所述中央管理设备206生成调整指令时,中央管理设备206还用于将所述调整指令的信息发送到所述负载均衡服务器202。所述负载均衡服务器202还用于从所述调整指令的信息中获取进行了动态调整的动态配置服务单元的调整信息;根据所述调整信息更新本地的负载均衡策略,并根据更新后的所述负载均衡策略对所有动态配置服务单元进行负载均衡。通过这种方式,负载均衡服务器可以及时获知动态配置服务单元的调整情况,以进行自身的适应性调整,保证负载均衡的效率和准确性。
在一个具体实施方式中,负载均衡服务器202包括Nginx服务模块2021和负载均衡管理模块2022。负载均衡管理模块2022用于从所述调整指令的信息中获取进行了动态调整的动态配置服务单元的调整信息;根据所述调整信息更新本地的负载均衡策略,并根据更新后的所述负载均衡策略对所有动态配置服务单元进行负载均衡。Nginx服务模块2021用于接收任务,并根据负载均衡管理模块2022的指示将接收的任务分发到应用服务器204的动态配置服务单元。
例如,若负载均衡管理模块2022从所述调整指令的信息中获取进行了动态调整的动态配置服务单元的调整信息指示:应用服务器A中启动了新的动态配置服务单元a,并部署了Python应用,则负载均衡管理模块2022根据该调整信息更新负载均衡策略,并根据更新后的负载均衡策略对所有动态配置服务单元进行负载均衡,如指示Nginx服务模块2021将接收的需要Python应用执行的任务分发到动态配置服务单元a中由其上部署的Python应用执行。
中央管理设备206根据各个应用服务器204发送的本地运行数据确定是否需要对所述应用服务器204中的动态配置服务单元进行调整。
其中,本地运行数据用于指示对应的应用服务器204的状态信息以及负载信息。所述本地运行数据包括下列运行参数中的至少之一:所述应用服务器204的CPU使用率、内存使用率、和处于激活状态的各个动态配置服务单元中的各应用的任务量。根据需要,所述本地运行数据还可以包括下列状态参数中的至少之一:各动态配置服务单元的激活状态和存活状态。
处于激活状态的各个动态配置服务单元中的各应用的任务量是指单位时间内,处于激活状态的各个动态配置服务单元中的各个应用接收到的任务量。处于激活状态的动态配置服务单元是指部署有应用,可以执行任务的动态配置服务单元。相对的,处于未激活状态的动态配置服务单元是指虽然部署在应用服务器204上,目前尚未被使用、但可以根据需要被配置和使用的动态配置服务单元。
动态配置服务单元上部署的应用用于为客户端的应用程序提供服务。该应用可以是任何适当语言的应用,如Python应用、go应用和ruby应用等。
如前所述,各动态配置服务单元的激活状态用于指示动态配置服务单元是否配置有应用处于被使用的状态。
动态配置服务单元的存活状态用于指示动态配置服务单元是否处于崩溃无法响应的状态。
在一种可行的确定是否需要对应用服务器204的动态配置服务单元进行调整的方式中,所述中央管理设备206用于接收所述应用服务器204发送的所述本地运行数据,将所述本地运行数据中的至少一个运行参数与对应的设定阈值进行比较,以根据比较结果确定是否需要对所述应用服务器204中的动态配置服务单元进行动态调整,并在确定需要进行动态调整时,生成对应的调整指令,并向所述应用服务器204发送调整指令。
例如,第一种情况中,所述中央管理设备206用于接收所述应用服务器204发送的所述本地运行数据,并在比较所述本地运行数据中的所述处于激活状态的各个动态配置服务单元中的各应用的任务量和设定任务量阈值,确定需要对所述应用服务器204中的动态配置服务单元中的应用进行调整时,向所述应用服务器204发送针对所述应用的调整指令。
中央管理设备206在比较处于激活状态的各个动态配置服务单元中的各应用的任务量和设定任务量阈值时,若某个或某几个应用的任务量超过设定任务量阈值,则表示可能存在突发流量情况,导致应用的任务量过大,因此需要进行调整,以应对突发流量。基于此,中央管理设备206可以生成调整指令,并发送给应用服务器204。同时,中央管理设备206还可以将调整指令中的调整信息发送给负载均衡服务器202,使负载均衡服务器202能够更加调整信息更新负载均衡策略。
需要说明的是,设定任务量阈值可以包括一个端点值,也可以包括两个端点值。例如,设定任务量阈值可以包括任务量上限值和任务量下限值。当然,任务量上限值和任务量下限值的具体取值可以根据需求确定。
若某一应用的任务量超过了任务量上限值,则表示存在突发流量增加,中央管理设备206可以通过调整指令指示应用服务器204启动新的动态配置服务单元并部署新的应用,以方便后续负载均衡服务器202将需要该应用执行的任务分发到新部署的应用上,应对突发流量增加的情况。
若某一应用的任务量超过了任务量下限值,则表示有突发流量减少,现有的应用数量过多,中央管理设备206可以通过调整指令指示应用服务器204删除一个处于激活状态的动态配置服务单元中的应用,以减少资源占用和能源消耗。
在第二种情况中,所述中央管理设备206用于接收应用服务器204发送的本地运行数据,其还用于在比较本地运行数据中的CPU使用率与设定CPU阈值、或比较本地运行数据中的内存使用率与设定内存阈值,确定需要对所述应用服务器204中的动态配置服务单元进行增加或删除调整时,向所述应用服务器204发送增加或删除动态配置服务单元的调整指令。
需要说明的是,本实施例中的设定CPU阈值和设定内存阈值均可以仅包括一个端值,或者包括两个端值。本实施例中,以设定CPU阈值包括设定CPU上限值和设定CPU下限值、设定内存阈值包括设定内存上限值和设定内存下限值为例进行说明。设定CPU上限值和设定CPU下限值的具体取值可以根据需要确定,例如,设定CPU上限值可以是应用服务器204总CPU资源的80%,设定CPU下限值可以是应用服务器204总CPU资源的30%。内存上限值和内存下限值与CPU上限值和CPU下限值类似,故不再赘述。
中央管理设备206在比较CPU使用率与设定CPU阈值时,若CPU使用率超过设定CPU上限值,则表示资源占用率过高,为了避免资源耗尽而宕机,则需要生成指示在新的应用服务器204上增加动态配置服务单元的调整指令。
若CPU使用率低于设定CPU下限值,则表示资源占用较少,为了避免资源空置浪费,减少能源如电能消耗,提升资源利用率,生成指示删除动态配置服务单元的调整指令。例如,从所有的动态配置服务单元中任选一个进行删除。
比较内存使用率与设定内存阈值,并生成调整指令的过程与前述的比较CPU使用率与设定CPU阈值,并生成调整指令的过程类似,在此不再赘述。
可选地,为进一步提升资源利用率,并提升容量调整的及时性,所述中央管理设备206还用于在所述确定需要对所述应用服务器204中的动态配置服务单元进行增加或删除调整时,先根据所述本地运行数据中的各所述动态配置服务单元的存活状态,确定所述应用服务器204中的动态配置服务单元中需要进行增加或删除的动态配置服务单元;再根据确定的所述动态配置服务单元生成所述调整指令并向所述应用服务器204发送。
在一个具体的实施方式中,确定需要进行动态配置服务单元的删除时,可以根据各动态配置服务单元的存活状态,选择存活状态指示死亡的动态配置服务单元作为确定的需要删除的动态配置服务单元,进而据此生成调整指令,并将该调整指令发送给对应的应用服务器204。
当确定需要进行动态配置服务单元的增加时,根据动态配置服务单元的存活状态,选择处于存活状态的动态配置服务单元所在的应用服务器204增加新的动态配置服务单元,并生成调整指令。
可选地,为了进一步优化资源使用情况,中央管理设备206在所述确定需要对所述应用服务器204中的动态配置服务单元进行增加或删除调整时,还可以根据各应用服务器204的资源占用信息和各动态配置服务单元的存活状态,确定所述应用服务器204中的动态配置服务单元中需要进行增加或删除的动态配置服务单元;再根据确定的所述动态配置服务单元生成所述调整指令并向所述应用服务器204发送。
如,在确定需要删除动态配置服务单元时,可以根据存活状态确定处于死亡状态的动态配置服务单元,若处于死亡状态的动态配置服务单元的数量大于1,则可以根据各应用服务器204的资源占用信息确定删除资源占用率较高的应用服务器204上的动态配置服务单元。
在确定需要增加动态配置服务单元时,可以先根据存活状态确定处于存活状态的动态配置服务单元所在的应用服务器204,再根据各应用服务器204的资源占用信息从这些应用服务器204中选择资源占用率较低的应用服务器204增加新的动态配置服务单元。
可选地,为了确保对客户端应用程序的支持,中央管理设备206还用于根据各动态配置服务单元的存活状态,确定是否需要调整动态配置服务单元。例如,若根据存活状态确定某一动态配置服务单元死亡,为了保证能够正常提供服务,可以增加一个新的动态配置服务单元,并将已经死亡的动态配置服务单元上的应用重新部署到新的动态配置服务单元上。
该中央管理设备206能够根据本地运行数据确定各应用服务器204以及其上的动态配置服务单元和应用的负载情况,进而能够在存在负载过大或资源空置过高的情况下及时进行调整,以保证应用服务器204能够可靠稳定地为客户端提供服务,又可以提升资源利用率,避免资源浪费。
需要说明的是,中央管理设备206在将本地运行数据中的参数与设定阈值进行比较并确定是否需进行调整时,可以当参数超过或低于设定阈值,并持续一段时间(例如,2分钟。当然,该持续时间可以根据需要确定)后再确定是否需要进行调整。这样可以确保管理控制的稳定性和可靠性,避免由于本地运行数据中参数的微小波动造成的频繁进行调整的问题。
在本实施例中,所述应用服务器204中除了配置有动态配置服务单元外,还包括本地管理单元2041;所述应用服务器204通过所述本地管理单元2041采集所述本地运行数据,并将所述本地运行数据发送给所述中央管理设备206;以及,通过所述本地管理单元2041接收所述中央管理设备206发送的所述调整指令,并根据所述调整指令,对所述调整指令所指示的动态配置服务单元和/或所述动态配置服务单元中的应用进行动态调整。
本地管理单元2041可以与中央管理设备206通信,并根据中央管理设备206发送的调整指令对应用服务器204中的各个动态配置服务单元以及其上部署的应用进行统一管理,以提升管理的可靠性,且可以减少中央管理设备206的通讯压力。
在本实施例中,所述应用服务器204中的所述动态配置服务单元可以通过其中的路由器进程对接收到的所述任务进行动态路由,根据动态路由结果对所述动态配置服务单元中的应用执行的任务进行动态调整,以进一步在动态配置服务单元内,对其上部署的应用间进行负载均衡,提升负载均衡效果。
例如,一种可行方式中,所述应用服务器204中的所述动态配置服务单元通过创建新的应用,并通过所述路由器进程对所述任务的动态路由,将所述任务分配至所述新的应用执行,以对所述动态配置服务单元中的应用执行的任务进行动态调整。
结合参见图2,对该服务器系统进行负载均衡的过程说明如下:
如图2所示,在应用服务器204上部署有2个动态配置服务单元(本实施例中,该动态配置服务单元为基于Nginx unit的动态配置服务单元)。其中,一个Nginx unit(记作Nginx unita)中部署有go应用,另一个Nginx unit(记作Nginx unitb)中部署有PHP应用和Python应用。此外,该应用服务器204上还部署有两个备用的Nginx unit,这两个备用的Nginx unit上未部署应用。这些应用只部署代码在本地,并由Nginx unit创建的监听端口进行流量转发。
当负载均衡服务器202的Nginx服务模块2021接收到客户端的应用程序发送的HTTP请求(即需要动态配置服务单元执行的任务)后,负载均衡管理模块2022根据该应用程序的语言类型以及本地负载均衡策略确定执行该HTTP请求的应用。例如,该HTTP请求的语言类型为Python,则确定由Python应用执行该HTTP请求。Nginx服务模块2021将该HTTP请求转发到负载均衡管理模块2022确定的执行该HTTP请求的应用所在的动态配置服务单元。在确定执行该HTTP请求的应用后将执行结果返回给客户端的应用程序。
各应用服务器204中的本地管理单元2041采集应用服务器204的本地运行数据。例如,采集的各动态配置服务单元的存活状态、各应用的任务量、应用服务器204的CPU使用率和内存使用率等。而且,本地管理单元2041将采集的本地运行数据发送给中央管理设备206。
中央管理设备206根据本地运行数据确定是否需要对Nginx unit进行调整。例如,当PHP应用的任务量超过设定任务量阈值时,中央管理设备206确定需要增加PHP应用,以应对增加的任务量。此时,若应用服务器204为多个,则可以根据各应用服务器204的资源占用信息选择一个资源占用率较低的应用服务器204,并生成指示在该应用服务器204上部署新的Nginx unit,并在新的Nginx unit中部署PHP应用的调整指令,并将该调整指令发送给该应用服务器204的本地管理模块,由本地管理模块执行该调整指令,实现调整。
当然,若应用服务器204中存在备用的Nginx unit,则可以直接在备用的Nginxunit中部署新的应用,实现调整。
中央管理设备206还将调整指令中的调整信息发送给负载均衡服务器202,负载均衡服务器202中的负载均衡管理模块2022根据调整信息更新本地的负载均衡策略,例如,在负载均衡策略中加入新的转发规则,将接收的任务转发到新的应用中。
该服务器系统能够实现容量调整,根据需要进行扩容或缩容,充分利用了Nginxunit,实现了动态不停机配置,实现不停机秒级扩容,提升了容量调整速度和容量调整效果,还可以实现资源的充分利用,避免资源闲置浪费。由于其不依赖容器化技术,规避了容器化技术导致的应用配置和日志处理复杂的问题,也避免了因扩容时需要下载镜像文件导致的扩容延迟问题。
此外,该服务器系统可以实现弹性扩容,在负载突然增加或减少(如客户端的请求流量突发上涨或减少)时实现对应应用的增加或删除,以确定能够提供可靠的服务,又不会造成资源闲置浪费。
中央管理设备206根据各应用服务器204的本地运行数据确定资源较为丰富的应用服务器204部署新应用,确定资源较为紧张的应用服务器204停止应用,进一步优化了各个应用服务器204的负载,提升了稳定性和可靠性。
中央管理设备206可以根据应用服务器204的Nginx unit的存活状态判断是否启动其他Nginx unit,避免出现机器宕机后应用不可用的情况。
当中央管理设备206可以向负载均衡服务器202发送调整信息,使负载均衡服务器202及时更新负载均衡策略,保证负载均衡的可靠性。
需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。
上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CDROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的服务器系统。此外,当通用计算机访问用于实现在此示出的服务器系统的代码时,代码的执行将通用计算机转换为用于执行在此示出的服务器系统的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。
Claims (10)
1.一种服务器系统,其特征在于,包括:负载均衡服务器、应用服务器和中央管理设备;
其中,
所述负载均衡服务器,用于对接收到的、需要通过动态配置服务单元执行的任务进行负载均衡,以确定执行所述任务的动态配置服务单元,并将所述任务分发至确定的所述动态配置服务单元;
所述应用服务器中配置有至少一个动态配置服务单元,所述应用服务器用于从所述负载均衡服务器接收分发的所述任务,并将所述任务分配给本地对应的动态配置服务单元执行;以及,采集本地运行数据,并向所述中央管理设备发送采集的本地运行数据;
所述中央管理设备,用于接收所述应用服务器发送的所述本地运行数据,并在根据所述本地运行数据确定需要对所述应用服务器中的动态配置服务单元进行调整时,向所述应用服务器发送调整指令;
所述应用服务器,还用于根据接收的所述调整指令,对动态配置服务单元进行动态调整。
2.根据权利要求1所述的服务器系统,其特征在于,
所述中央管理设备,还用于将所述调整指令的信息发送到所述负载均衡服务器;
所述负载均衡服务器,还用于从所述调整指令的信息中获取进行了动态调整的动态配置服务单元的调整信息;根据所述调整信息更新本地的负载均衡策略,并根据更新后的所述负载均衡策略对所有动态配置服务单元进行负载均衡。
3.根据权利要求1所述的服务器系统,其特征在于,
所述本地运行数据包括下列运行参数中的至少之一:所述应用服务器的CPU使用率、内存使用率、和处于激活状态的各个动态配置服务单元中的各应用的任务量;
所述本地运行数据还包括下列状态参数中的至少之一:各动态配置服务单元的激活状态和存活状态。
4.根据权利要求3所述的服务器系统,其特征在于,所述中央管理设备,用于接收所述应用服务器发送的所述本地运行数据,将所述本地运行数据中的至少一个运行参数与对应的设定阈值进行比较,以根据比较结果确定是否需要对所述应用服务器中的动态配置服务单元进行动态调整,并在确定需要进行动态调整时,生成对应的调整指令,并向所述应用服务器发送调整指令。
5.根据权利要求4所述的服务器系统,其特征在于,所述中央管理设备,用于接收所述应用服务器发送的所述本地运行数据,并在比较所述本地运行数据中的所述处于激活状态的各个动态配置服务单元中的各应用的任务量和设定任务量阈值,确定需要对所述应用服务器中的动态配置服务单元中的应用进行调整时,向所述应用服务器发送针对所述应用的调整指令。
6.根据权利要求4所述的服务器系统,其特征在于,所述中央管理设备,还用于在比较本地运行数据中的CPU使用率与设定CPU阈值、或比较本地运行数据中的内存使用率与设定内存阈值,确定需要对所述应用服务器中的动态配置服务单元进行增加或删除调整时,向所述应用服务器发送增加或删除动态配置服务单元的调整指令。
7.根据权利要求6所述的服务器系统,其特征在于,所述中央管理设备还用于在所述确定需要对所述应用服务器中的动态配置服务单元进行增加或删除调整时,先根据所述本地运行数据中的各所述动态配置服务单元的存活状态,确定所述应用服务器中的动态配置服务单元中需要进行增加或删除的动态配置服务单元;再根据确定的所述动态配置服务单元生成所述调整指令并向所述应用服务器发送。
8.根据权利要求1所述的服务器系统,其特征在于,所述应用服务器中还包括本地管理单元;
所述应用服务器通过所述本地管理单元采集所述本地运行数据,并将所述本地运行数据发送给所述中央管理设备;以及,
通过所述本地管理单元接收所述中央管理设备发送的所述调整指令,并根据所述调整指令,对所述调整指令所指示的动态配置服务单元和/或所述动态配置服务单元中的应用进行动态调整。
9.根据权利要求1-8任一项所述的服务器系统,其特征在于,
所述应用服务器中的所述动态配置服务单元通过其中的路由器进程对所述任务进行动态路由,根据动态路由结果对所述动态配置服务单元中的应用执行的任务进行动态调整。
10.根据权利要求9所述的服务器系统,其特征在于,
所述应用服务器中的所述动态配置服务单元通过创建新的应用,并通过所述路由器进程对所述任务的动态路由,将所述任务分配至所述新的应用执行,以对所述动态配置服务单元中的应用执行的任务进行动态调整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811235686.7A CN111092915A (zh) | 2018-10-23 | 2018-10-23 | 服务器系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811235686.7A CN111092915A (zh) | 2018-10-23 | 2018-10-23 | 服务器系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111092915A true CN111092915A (zh) | 2020-05-01 |
Family
ID=70391297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811235686.7A Pending CN111092915A (zh) | 2018-10-23 | 2018-10-23 | 服务器系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111092915A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387218A (zh) * | 2011-11-24 | 2012-03-21 | 浪潮电子信息产业股份有限公司 | 一种计算机多机热备负载均衡系统 |
CN102724104A (zh) * | 2011-03-30 | 2012-10-10 | 北京东方通科技股份有限公司 | 自动配置Java EE应用集群的装置和方法 |
CN102833355A (zh) * | 2012-09-22 | 2012-12-19 | 广东电子工业研究院有限公司 | 一种面向云计算的负载均衡系统及机制 |
CN103793275A (zh) * | 2012-10-31 | 2014-05-14 | 北京华胜天成科技股份有限公司 | 实现负载均衡的系统及处理方法 |
CN105139130A (zh) * | 2015-08-27 | 2015-12-09 | 国电南瑞科技股份有限公司 | 一种适用于电力系统分布式任务的管理方法 |
US20160028761A1 (en) * | 2014-07-22 | 2016-01-28 | Nuix Pty Ltd | Systems and Methods for Parallelized Custom Data-Processing and Search |
CN106095533A (zh) * | 2016-06-14 | 2016-11-09 | 中国联合网络通信集团有限公司 | 服务器扩容方法及装置 |
CN106201819A (zh) * | 2016-06-28 | 2016-12-07 | 乐视控股(北京)有限公司 | 应用容器引擎的系统资源占用量监控方法和装置 |
CN106453492A (zh) * | 2016-08-30 | 2017-02-22 | 浙江大学 | 基于模糊模式识别的Docker容器云平台下的容器调度方法 |
-
2018
- 2018-10-23 CN CN201811235686.7A patent/CN111092915A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102724104A (zh) * | 2011-03-30 | 2012-10-10 | 北京东方通科技股份有限公司 | 自动配置Java EE应用集群的装置和方法 |
CN102387218A (zh) * | 2011-11-24 | 2012-03-21 | 浪潮电子信息产业股份有限公司 | 一种计算机多机热备负载均衡系统 |
CN102833355A (zh) * | 2012-09-22 | 2012-12-19 | 广东电子工业研究院有限公司 | 一种面向云计算的负载均衡系统及机制 |
CN103793275A (zh) * | 2012-10-31 | 2014-05-14 | 北京华胜天成科技股份有限公司 | 实现负载均衡的系统及处理方法 |
US20160028761A1 (en) * | 2014-07-22 | 2016-01-28 | Nuix Pty Ltd | Systems and Methods for Parallelized Custom Data-Processing and Search |
CN105139130A (zh) * | 2015-08-27 | 2015-12-09 | 国电南瑞科技股份有限公司 | 一种适用于电力系统分布式任务的管理方法 |
CN106095533A (zh) * | 2016-06-14 | 2016-11-09 | 中国联合网络通信集团有限公司 | 服务器扩容方法及装置 |
CN106201819A (zh) * | 2016-06-28 | 2016-12-07 | 乐视控股(北京)有限公司 | 应用容器引擎的系统资源占用量监控方法和装置 |
CN106453492A (zh) * | 2016-08-30 | 2017-02-22 | 浙江大学 | 基于模糊模式识别的Docker容器云平台下的容器调度方法 |
Non-Patent Citations (1)
Title |
---|
温涛: "《网络综合项目实训教程》", 31 July 2013 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220107848A1 (en) | Edge service providing method and apparatus, and device | |
CN107547596B (zh) | 一种基于Docker的云平台控制方法及装置 | |
US8131835B2 (en) | Method of load balancing edge-enabled applications in a content delivery network (CDN) | |
US9984013B2 (en) | Method, controller, and system for service flow control in object-based storage system | |
US10048974B1 (en) | Message-based computation request scheduling | |
US9154549B2 (en) | Dynamic server farms | |
CN108156013B (zh) | 一种页面服务容灾方法、装置及电子设备 | |
CN107547629B (zh) | 客户端静态资源下载的方法、装置、电子设备和可读介质 | |
US7873733B2 (en) | Load distribution method, load distribution device, and system including load distribution device | |
WO2018121334A1 (zh) | 一种提供网页应用服务的方法、装置、电子设备及系统 | |
CN102821000A (zh) | 提高PaaS平台可用性的方法 | |
US20110138053A1 (en) | Systems, Methods and Computer Readable Media for Reporting Availability Status of Resources Associated with a Network | |
CN102263822B (zh) | 一种分布式缓存的控制方法、系统及装置 | |
WO2012065426A1 (zh) | 一种分布式缓存系统中负荷分配方法、装置及服务器 | |
CN111327697B (zh) | 一种数据下载方法、装置、设备及存储介质 | |
CN107302580B (zh) | 负载均衡方法、装置、负载均衡器及存储介质 | |
CN110995617B (zh) | 基于mqtt的数据报送方法、装置、计算机设备和存储介质 | |
CN113055469B (zh) | 云容器存储控制方法、系统、电子设备及存储介质 | |
JP2005182641A (ja) | 動的負荷分散システム及び動的負荷分散方法 | |
CN111092921A (zh) | 数据采集方法、装置及存储介质 | |
CN113900774B (zh) | 云操作系统的虚拟机控制方法、装置以及存储介质 | |
US20240106890A1 (en) | Peer-to-peer network scheduling method and system | |
CN102724104A (zh) | 自动配置Java EE应用集群的装置和方法 | |
CN109815204B (zh) | 一种基于拥塞感知的元数据请求分发方法及设备 | |
CN113885794A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200501 |
|
RJ01 | Rejection of invention patent application after publication |