CN113946376A - 负载调整方法、装置、电子设备及存储介质 - Google Patents

负载调整方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113946376A
CN113946376A CN202111272587.8A CN202111272587A CN113946376A CN 113946376 A CN113946376 A CN 113946376A CN 202111272587 A CN202111272587 A CN 202111272587A CN 113946376 A CN113946376 A CN 113946376A
Authority
CN
China
Prior art keywords
server
state
servers
application service
target application
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
Application number
CN202111272587.8A
Other languages
English (en)
Inventor
朱宏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guahao Net Hangzhou Technology Co Ltd
Original Assignee
Guahao Net Hangzhou Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guahao Net Hangzhou Technology Co Ltd filed Critical Guahao Net Hangzhou Technology Co Ltd
Priority to CN202111272587.8A priority Critical patent/CN113946376A/zh
Publication of CN113946376A publication Critical patent/CN113946376A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明实施例公开了一种负载调整方法、装置、电子设备及存储介质,该方法包括:获取标记为可使用状态的各服务器,并确定各服务器所对应的各目标应用服务;针对各目标应用服务,若监测到与当前目标应用服务所关联的服务器为挂起状态的挂起数据达到预设挂起阈值,则根据所述挂起数据,将与所述当前目标应用服务所关联的其它服务器的标记由不可用状态更新为临时可用状态;根据可使用状态的服务器和临时可用状态的服务器提供相应的应用服务。本发明实施例的技术方案,满足了由特定服务器集群处理相关请求的业务需要,保证了多个服务器在业务请求处理过程中的稳定性和高可用性。

Description

负载调整方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及服务器技术领域,尤其涉及一种负载调整方法、装置、电子设备及存储介质。
背景技术
目前,企业利用服务器向用户提供应用服务时,通常需要将大量服务器部署在多个机房中,当由这些机房构建的整体系统启动时,也直接激活了各机房中的服务器。
现有技术在利用这些服务器提供应用服务的过程中,相关请求可能被随机转发到任意机房的服务器中进行处理。然而,这种随机转发的方式可能无法满足某些业务请求“由特定服务器集群进行处理”的业务需要;同时,相关技术提供的方案中缺乏有效的跨机房服务器调用策略,无法保证业务请求处理的稳定性和高可用性。
发明内容
本发明提供一种负载调整方法、装置、电子设备及存储介质,满足了由特定服务器集群处理相关请求的业务需要,保证了多个服务器在业务请求处理过程中的稳定性和高可用性。
第一方面,本发明实施例提供了一种负载调整方法,应用于代理服务器中,该方法包括:
获取标记为可使用状态的各服务器,并确定各服务器所对应的各目标应用服务;
针对各目标应用服务,若监测到与当前目标应用服务所关联的服务器为挂起状态的挂起数据达到预设挂起阈值,则根据所述挂起数据,将与所述当前目标应用服务所关联的其它服务器的标记由不可用状态更新为临时可用状态;
根据可使用状态的服务器和临时可用状态的服务器提供相应的应用服务。
第二方面,本发明实施例还提供了一种负载调整装置,部署于代理服务器中,该装置包括:
可使用状态服务器获取模块,用于获取标记为可使用状态的各服务器,并确定各服务器所对应的各目标应用服务;
服务器状态更新模块,用于针对各目标应用服务,若监测到与当前目标应用服务所关联的服务器为挂起状态的挂起数据达到预设挂起阈值,则根据所述挂起数据,将与所述当前目标应用服务所关联的其它服务器的标记由不可用状态更新为临时可用状态;
服务模块,用于根据可使用状态的服务器和临时可用状态的服务器提供相应的应用服务。
第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例任一所述的负载调整方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明实施例任一所述的负载调整方法。
本发明实施例的技术方案,先获取标记为可使用状态的各服务器,确定各服务器所对应的各目标应用服务,从而确定出用于处理与各应用服务对应请求的服务器集群;针对各目标应用服务,若监测到与当前目标应用服务所关联的服务器为挂起状态的挂起数据达到预设挂起阈值,则根据挂起数据,将与当前目标应用服务所关联的其他服务器的标记由不可用状态更新为临时可用状态;根据可使用状态的服务器和临时可用状态的服务器提供相应的应用服务,从而满足由特定服务器集群处理相关请求的业务需要,同时,通过调整服务器标记部署了服务器跨机房调用的策略,进而保证了多个服务器在业务请求处理过程中的稳定性和高可用性。
附图说明
为了更加清楚地说明本发明示例性实施例的技术方案,下面对描述实施例中所需要用到的附图做一简单介绍。显然,所介绍的附图只是本发明所要描述的一部分实施例的附图,而不是全部的附图,对于本领域普通技术人员,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。
图1为本发明实施例一所提供的一种负载调整方法的流程示意图;
图2为本发明实施例二所提供的一种负载调整方法的流程示意图;
图3为本发明实施例三所提供的一种负载调整装置的结构框图;
图4为本发明实施例四所提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一所提供的一种负载调整方法的流程示意图,本实施例可适用于基于多个服务器对相关应用服务的请求进行处理的情况,尤其适用于处理基于任何可以得到中间语言的程序设计语言所编写的项目代码的场景,该方法可以由负载调整装置来执行,该装置可以通过软件和/或硬件的形式实现,该硬件可以是电子设备,如移动终端、PC端或服务器等。
为了清楚地了解本发明实施例的技术方案,可以先对代理服务器以及本技术方案的应用场景进行说明。
在本实施例的方案中,代理服务器可以是OpenResty Service Mesh网关代理系统,其中,OpenResty是一个基于NGINX的可伸缩的web平台,该平台提供有很多第三方模块;同时,OpenResty作为一个web应用服务器,相关的开发人员可以使用lua脚本语言调用NGINX支持的各种C以及lua模块,从性能上说,OpenResty可以快速构造出足以胜任10K以上并发连接响应的超高性能的web应用系统。
同时,OpenResty Service Mesh网关代理系统可以对应用程序编程接口(Application Programming Interface,API)访问的前置操作进行统一的管理,比如鉴权、负载均衡、日志收集、请求分片等。基于此,在本实施例的方案中,将代理服务器部署在某一个机房后,可以进一步将部署于该机房以及其他机房中的多个服务器与代理服务器进行关联,并由代理服务器进行统一管控。同时,由于每个服务器又可以与特定的应用服务相对应,因此在接收到业务请求时,代理服务器可以将请求在不同机房的多个服务器间进行分发,对应的,服务器接收到业务请求后即可对该请求进行处理,在分发业务请求的过程中,即涉及到负载均衡的问题。本领域技术人员应当理解,负载均衡即是使请求随机分散到与各应用服务所对应的服务器中,而本实施例的技术方案,即是用于在调整系统负载的过程中,满足由特定服务器集群处理相关请求的业务需要,并保证多个服务器在业务请求处理过程中的稳定性和高可用性。
如图1所示,该方法具体包括如下步骤:
S110、获取标记为可使用状态的各服务器,并确定各服务器所对应的各目标应用服务。
在本实施例中,当代理服务器经过初始化并启动后,可以先获取相关联的标记为可使用状态的各服务器。具体来说,这些服务器可以是web服务器、基于文本传输协议(FileTransfer Protocol,FTP)的服务器、企业关键应用服务器或者其他关键任务服务器等。同时,在服务器配置管理页面,可以获取服务器的标记信息,这些标记信息用于表征服务器所处的状态,例如,标记信息可以表征对应的服务器处于可使用状态还是不可用状态,当标记信息为可使用状态时,表征该服务器处于启动状态,具备数据通信以及请求处理能力。
进一步的,在代理服务器获取到标记为可使用状态的服务器后,为了利用这些服务器对相关业务请求进行处理,还需要确定出各服务器所对应的目标应用服务,具体来说,可以根据服务器的配置管理信息确定该服务器能够处理与哪些应用相关的请求。示例性的,当确定出机房内某一服务器的配置管理信息中包括应用程序A的标识,即表明该服务器用于处理与应用程序A相关的业务请求。需要说明的是,对于同一应用程序相关的业务请求来说,所对应的服务器可以有一个或多个,同时,多个服务器可以部署于同一机房内,也可以分别部署在多个机房内,本领域技术人员应当理解,具体的服务器部署方式应当根据实际情况进行选择,本公开实施例对此并未做具体的限定。
在本实施例中,为了满足某些应用服务对请求在同机房内进行转发的需求,代理服务器所获取的可使用状态的服务器可以是与自身处于同一机房内的服务器,例如,当代理服务器部署于标识为1的机房内时,在系统初始化启动后,可以将同样处于标识为1的机房内的服务器的配置管理信息设置为可使用状态,基于此,代理服务器即可获取这些服务器并加载与这些服务器相对应的应用服务。
可以理解为,在实际应用过程中,在启动系统提供应用服务时,可以仅将与代理服务器同机房内的服务器设置为可使用状态,而将其他机房内的服务器设置为不可用状态,从而满足某些场景业务请求在同一机房内进行流转的需要,避免了将业务请求在多个机房之间流转所导致的应用服务时延问题,保证了业务请求的处理效率;同时,多个机房内的服务器共同运行时,不同机房的基础中间件数据可能存在差异,而仅利用与代理服务器同机房的服务器提供对应的应用服务,也可以有效避免上述因中间件数据不通所导致的业务调用失败的问题。
S120、针对各目标应用服务,若监测到与当前目标应用服务所关联的服务器为挂起状态的挂起数据达到预设挂起阈值,则根据挂起数据,将与当前目标应用服务所关联的其它服务器的标记由不可用状态更新为临时可用状态。
在本实施例中,当代理服务器确定出标记为可使用状态的服务器,并确定出这些服务器对应的目标应用服务时,即可将接收的相关业务请求进行转发,由可使用状态的服务器对请求进行处理,在这一过程中,还需要对目标应用服务所关联的服务器的状态进行监测。具体的,可以设置一个健康检查器对与目标应用服务所关联的服务器的可用性进行实时动态监测,当检查器确定相关服务器无法处理对应的业务请求时,即可确定该服务器处于挂起状态。本领域技术人员应当理解,当服务器处于挂起状态时,即表明当前系统缺少某种资源或者服务器出现异常情况,从而导致其无法对相应的业务请求进行响应。
进一步的,在系统利用健康检查器对服务器进行实时动态监测的同时,还可以确定出处于挂起状态的服务器的挂起数据,例如,所确定的挂起数据可以是处于挂起状态的服务器的具体数量。同时,对于不同的目标应用服务来说,还可以预先在系统内设置与各应用服务所对应的服务器挂起阈值,当实际处于挂起状态的服务器的数量达到该阈值时,即可调用其他服务器来处理对应的业务请求。示例性的,与应用程序A对应的预设挂起阈值可以是2,同时,在代理服务器同一机房内部署有4台用于处理应用程序A相关业务请求的服务器,在系统经过初始化启动并提供应用服务的过程中,如果健康检查器监测到有3台服务器处于挂起状态,则可以确定实际的挂起数据已经超出预设挂起阈值,此时,为了保证应用服务的可靠性,代理服务器可以将应用程序A相关的业务请求转发至其他对应的服务器,由其他服务器进行处理。
在本实施例中,当服务器的挂起数据超出预设挂起阈值时,为了使其他与目标应用服务相关的服务器处理业务请求,还需要对这些服务器的标记信息进行调整。具体来说,由于系统初始化启动时仅将特定服务器集群(如与代理服务器处于同一机房内的服务器集群)设置为可使用状态,而其他服务器(如其他机房内的服务器)设置为不可用状态。因此,在负载均衡的过程中,需要将其他服务器配置管理页面中设置的不可用状态调整为临时可用状态,以确定这些在挂起数据超出预设挂起阈值时处理相关业务请求的、部署于其他机房内的服务器。
需要说明的是,处于临时可用状态的服务器虽然与代理服务器部署于不同的机房内,且在挂起数据未超出预设挂起阈值时不提供对应的应用服务,但在整体系统初始化并启动时,这些服务器也会启动,仅在配置管理页面将标注信息设置为不可用状态。这样设置的好处在于,当可使用状态服务器的挂起数据超出预设挂起阈值时,其他机房内处于不可用状态的服务器可以迅速切换状态并对相关业务请求进行接收和处理,从而保证了相应目标应用服务的稳定性和高可用性。
S130、根据可使用状态的服务器和临时可用状态的服务器提供相应的应用服务。
在本实施例中,当确定出系统内处于可使用状态的服务器,以及处于临时可用状态的服务器后,代理服务器即可将当前目标应用服务的业务请求向这些服务器进行下发,即,利用这些服务器提供相应的应用服务。
本实施例的技术方案,先获取标记为可使用状态的各服务器,确定各服务器所对应的各目标应用服务,从而确定出用于处理与各应用服务对应请求的服务器集群;针对各目标应用服务,若监测到与当前目标应用服务所关联的服务器为挂起状态的挂起数据达到预设挂起阈值,则根据挂起数据,将与当前目标应用服务所关联的其他服务器的标记由不可用状态更新为临时可用状态;根据可使用状态的服务器和临时可用状态的服务器提供相应的应用服务,从而满足由特定服务器集群处理相关请求的业务需要,同时,通过调整服务器标记部署了服务器跨机房调用的策略,进而保证了多个服务器在业务请求处理过程中的稳定性和高可用性。
实施例二
图2为本发明实施例二所提供的一种负载调整方法的流程示意图,在前述实施例的基础上,在系统初始化启动后,确定与各目标应用服务对应的服务器列表,以此确定出目标机房以及目标机房内与应用服务对应的服务器,并对各服务器的状态进行设置;当处于挂起状态的服务器全部恢复为可使用状态后,将临时可用状态的其他机房的服务器调整回不可用状态,通过负载动态调整的方式保证某些应用服务的请求在同一机房内转发的需要,并避免请求跨机房转发导致的时延问题;同时,只要系统内存在挂起状态的服务器,则维持其他机房相关服务器的临时可用状态,以此保证应用服务的高可靠性。其具体的实施方式可以参见本实施例技术方案。其中,与上述实施例相同或者相应的技术术语在此不再赘述。
如图2所示,该方法具体包括如下步骤:
S210、启动各机房中的服务器,并确定与各目标应用服务对应的服务器列表。
在本实施例中,当系统接收到初始化以及启动指令后,即可启动代理服务器,以及与代理服务器相关联的部署于各机房内的服务器,本领域技术人员应当理解,服务器在启动过程中涉及内核加载、环境变量的读取、内核启动以及程序运行等多个步骤,本公开实施例在此不做赘述。
同时,在本实施例中,启动各机房内的服务器时还需要确定出与各目标应用服务对应的服务器列表,其中,服务器列表中至少包括与每个目标应用服务所关联的服务器。例如,基于服务器列表,可以确定在标识为1的机房内与应用程序A关联的服务器为A1、A2、A3以及A4服务器,同时,还确定出在标识为2的机房内与应用程序A关联的服务器为B1、B2、B3以及B4服务器。可以理解,服务器列表中记录的属性信息至少用于反映各服务器与各目标应用服务之间的关联关系。
S220、根据服务器列表确定目标机房中各目标应用服务所关联的服务器,并在服务器列表中将服务器调整为可使用状态,以基于服务器列表获取标记为可使用状态的服务器。
其中,当系统根据服务器列表确定出各服务器与各目标应用服务之间的关联关系时,还可以将部署代理服务器的机房确定为目标机房,进而确定出目标机房内与代理服务器关联的服务器,并将这些服务器配置管理页面中的标记信息设置为可使用状态。
可选的,根据环境变量值,以及各服务器的业务路由信息,确定代理服务器与各服务器的网络连接信息;基于网络连接信息,确定属于目标机房的服务器,以在服务器列表中将与目标机房关联的服务器调整为可使用状态。
具体来说,在系统初始化启动时,可以先确定服务器的环境变量值,以及各服务器的业务路由信息,其中,业务路由信息包括服务器的IP地址、端口以及数据传输协议。进一步的,基于上述信息即可确定出代理服务器与各服务器之间的网络连接信息,从而确定目标机房内的服务器。示例性的,确定出各服务器的IP地址后,基于这些IP地址中的字段即可确定哪些服务器部署于代理服务器所处的机房内,哪些服务器部署于其他机房。最后,当确定出目标机房内的服务器后,即可在配置管理页面将这些服务器的标注信息调整为可使用状态,以利用这些服务器对代理服务器下发的相关业务请求进行处理。
S230、获取标记为可使用状态的各服务器,并确定各服务器所对应的各目标应用服务。
S240、针对各目标应用服务,若监测到与当前目标应用服务所关联的服务器为挂起状态的挂起数据达到预设挂起阈值,则根据挂起数据,将与当前目标应用服务所关联的其它服务器的标记由不可用状态更新为临时可用状态。
可选的,针对各目标应用服务,对目标机房中与当前目标应用服务所关联的各服务器进行心跳检测;若在预设时长内未接收到与心跳检测相对应的反馈数据,则将相应的服务器标记为挂起状态;若检测到存在挂起状态的待恢复服务器,则确定待恢复服务器的待恢复数量和与当前目标应用服务所对应的服务器的总数量之间的比例关系;若比例关系达到预设挂起阈值,则从与当前目标应用服务所关联的标记为不可用状态的服务器中,确定与待恢复数量相同的服务器,并将服务器的标记由不可用状态更新为临时可用状态。
示例性的,当系统提供应用服务时,可以利用健康检查器对目标机房内处于可使用状态的各服务器进行心跳检测。本领域技术人员应当理解,服务器健康检测方式在不同的协议下也可以有不同的方式,例如,当数据传输协议为传输控制协议(TransmissionControl Protocol,TCP)时,可以先向集群中服务器的某个端口发起TCP连接建立请求,如果成功三次则建立TCP连接,证明服务器TCP协议处理正常;当数据传输协议为超文本传输协议(Hyper Text TransferProtocol,HTTP)时,可以与集群中服务器的HTTP端口建立TCP连接,然后发出HTTP请求,如果收到的HTTP应答内容正确,则证明服务器HTTP协议处理正常。具体的心跳检测方式应当根据实际情况进行选择,本公开实施例在此并未做具体的限定。
进一步的,当健康检测器在预设时长内没有收到相应的反馈数据或应答信息,则证明该服务器无法正常处理相关的业务请求,因此需要在配置管理页面将该服务器从可使用状态调整为挂起状态,可以理解,处于挂起状态的服务器即是待恢复服务器。同时,设置挂起数据可以是待恢复服务器数量与系统启动时处于可使用状态的服务器数量的比值,对应的,预设挂起阈值可以设置为50%。基于此,当确定挂起数据达到50%以上时,即表明系统启动时处于可使用状态的服务器已经有一半以上调整为挂起状态,此时需要从其他机房内确定出与目标应用服务相对应的、与待恢复服务器数量相同的服务器继续处理相关业务请求,即,将其他机房的上述服务器的标记信息从不可用状态调整为临时可用状态。
需要说明的是,在其他机房内确定出与目标应用服务对应的服务器时,可以根据当前目标应用服务的标识,在已构建的服务器列表中确定出与当前目标应用服务所关联的、标记为不可用状态的服务器,进而对其标记信息进行调整。
S250、根据可使用状态的服务器和临时可用状态的服务器提供相应的应用服务。
在本实施例中,当系统提供应用服务时,可能出现处于挂起状态的服务器,同时,挂起状态的服务器还可能因诸多原因恢复为原有的可使用状态,下面对服务器挂起状态发生变化的情况进行具体说明。
可选的,若检测到服务器列表中不包括标记为挂起状态的服务器,则在服务器列表中将服务器的标记由临时可用状态更新为不可用状态,以基于服务器列表中标记为可使用状态的服务器提供相应的应用服务。
继续对步骤S210中的示例进行说明,当系统提供应用服务时,作为目标机房的、标识为1的机房内部署有与应用程序A相对应的4台服务器A1、A2、A3以及A4,在标识为2的机房内也部署有与应用程序A相对应的4台服务器B1、B2、B3以及B4。同时,当目标机房内A2、A3以及A4服务器出现故障并处于挂起状态后,实际挂起数据75%已经超过预设的挂起阈值50%,因此,服务器B1、B2以及B3服务器从不可用状态调整为临时可用状态,以处理代理服务器转发的相关业务请求。
进一步的,当挂起状态的A2、A3以及A4服务器全部修复完成后,对应的挂起状态也会恢复为原有的可使用状态,也即是说,上述三台服务器恢复后,系统服务器列表内已不存在挂起状态的服务器,仅利用标识为1的机房(即目标机房)内的服务器已经能够满足相关业务请求处理的需求。此时,为了继续保证某些应用服务的请求在同一机房内转发的需要,并避免请求跨机房转发导致的时延问题,可以将标识为2的机房内的B1、B2以及B3服务器的标记信息从临时可用状态重新调整回不可用状态,当状态调整完毕后,代理服务器便不再将相关业务请求转发至其他机房,而仅由目标机房内的A1、A2、A3以及A4服务器进行处理。
需要说明的是,若检测到服务器列表中包括标记为挂起状态的服务器,则保持各服务器的使用状态不变。
继续对上述示例进行说明,当挂起状态的A2、A3以及A4服务器中仅有A4服务器修复完成(对应挂起数据50%),或者,A3、A4两台服务器修复完成(对应挂起数据25%)时,目标机房内依然存在标记为挂起状态的服务器。此时,无论挂起数据是否超过预设挂起阈值,系统都需要保持标识为2的机房内的B1、B2以及B3服务器的标记信息不变,即,维持其标志信息的临时可用状态,相关业务请求由目标机房内的服务器以及B1、B2以及B3服务器同时进行处理,以此保证相关目标应用服务的高可靠性。
尤其需要说明的是,本实施例的方案不仅基于多个机房实现了负载的动态调整,其中的预设挂起阈值也可以根据实际需求进行修改,例如,上述示例中预设挂起阈值可以从50%调整为25%。可以理解为,本实施例的方案通过对由多个机房构建的系统的改造,使其具备了阈值化的服务器跨机房调用配置能力,同时对具体的预设挂起阈值并未做具体的限定。
本实施例的技术方案,在系统初始化启动后,确定与各目标应用服务对应的服务器列表,以此确定出目标机房以及目标机房内与应用服务对应的服务器,并对各服务器的状态进行设置;当处于挂起状态的服务器全部恢复为可使用状态后,将临时可用状态的其他机房的服务器调整回不可用状态,通过负载动态调整的方式保证某些应用服务的请求在同一机房内转发的需要,并避免请求跨机房转发导致的时延问题;同时,只要系统内存在挂起状态的服务器,则维持其他机房相关服务器的临时可用状态,以此保证应用服务的高可靠性。
实施例三
图3为本发明实施例三所提供的一种负载调整装置的结构框图,可执行本发明任意实施例所提供的负载调整方法,具备执行方法相应的功能模块和有益效果。如图3所示,该装置部署于代理服务器中,具体包括:可使用状态服务器获取模块310、服务器状态更新模块320以及服务模块330。
可使用状态服务器获取模块310,用于获取标记为可使用状态的各服务器,并确定各服务器所对应的各目标应用服务。
服务器状态更新模块320,用于针对各目标应用服务,若监测到与当前目标应用服务所关联的服务器为挂起状态的挂起数据达到预设挂起阈值,则根据所述挂起数据,将与所述当前目标应用服务所关联的其它服务器的标记由不可用状态更新为临时可用状态。
服务模块330,用于根据可使用状态的服务器和临时可用状态的服务器提供相应的应用服务。
在上述各技术方案的基础上,负载调整装置还包括服务器列表确定模块。
服务器列表确定模块,用于启动各机房中的服务器,并确定与各目标应用服务对应的服务器列表;其中,所述服务器列表中包括与每个目标应用服务所关联的服务器;根据所述服务器列表确定目标机房中各目标应用服务所关联的服务器,并在所述服务器列表中将所述服务器调整为可使用状态,以基于所述服务器列表获取标记为可使用状态的服务器。
可选的,服务器列表确定模块,还用于根据环境变量值,以及各服务器的业务路由信息,确定所述代理服务器与各服务器的网络连接信息;其中,所述业务路由信息包括服务器的IP地址、端口以及数据传输协议;基于所述网络连接信息,确定属于所述目标机房的服务器,以在所述服务器列表中将与所述目标机房关联的服务器调整为可使用状态。
在上述各技术方案的基础上,服务器状态更新模块320包括心跳检测单元、挂起状态标记单元、比例关系确定单元以及服务器状态更新单元。
心跳检测单元,用于针对各目标应用服务,对所述目标机房中与所述当前目标应用服务所关联的各服务器进行心跳检测。
挂起状态标记单元,用于若在预设时长内未接收到与所述心跳检测相对应的反馈数据,则将相应的服务器标记为挂起状态。
比例关系确定单元,用于若检测到存在挂起状态的待恢复服务器,则确定所述待恢复服务器的待恢复数量和与所述当前目标应用服务所对应的服务器的总数量之间的比例关系。
服务器状态更新单元,用于若所述比例关系达到所述预设挂起阈值,则从与所述当前目标应用服务所关联的标记为不可用状态的服务器中,确定与所述待恢复数量相同的服务器,并将所述服务器的标记由不可用状态更新为临时可用状态。
可选的,服务器状态更新单元,还用于根据所述当前目标应用服务的标识,在所述服务器列表中,确定出与所述当前目标应用服务所关联的标记为不可用状态的服务器。
可选的,服务器状态更新单元,还用于若检测到所述服务器列表中不包括标记为挂起状态的服务器,则在所述服务器列表中将服务器的标记由临时可用状态更新为不可用状态,以基于所述服务器列表中标记为可使用状态的服务器提供相应的应用服务。
在上述各技术方案的基础上,负载调整装置还包括状态保持模块。
状态保持模块,用于若检测到所述服务器列表中包括标记为挂起状态的服务器,则保持各服务器的使用状态不变。
本实施例所提供的技术方案,先获取标记为可使用状态的各服务器,确定各服务器所对应的各目标应用服务,从而确定出用于处理与各应用服务对应请求的服务器集群;针对各目标应用服务,若监测到与当前目标应用服务所关联的服务器为挂起状态的挂起数据达到预设挂起阈值,则根据挂起数据,将与当前目标应用服务所关联的其他服务器的标记由不可用状态更新为临时可用状态;根据可使用状态的服务器和临时可用状态的服务器提供相应的应用服务,从而满足由特定服务器集群处理相关请求的业务需要,同时,通过调整服务器标记部署了服务器跨机房调用的策略,进而保证了多个服务器在业务请求处理过程中的稳定性和高可用性。
本发明实施例所提供的负载调整装置可执行本发明任意实施例所提供的负载调整方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述装置所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
实施例四
图4为本发明实施例四所提供的一种电子设备的结构示意图。图4示出了适于用来实现本发明实施例实施方式的示例性电子设备40的框图。图4显示的电子设备40仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,电子设备40以通用计算设备的形式表现。电子设备40的组件可以包括但不限于:一个或者多个处理器或者处理单元401,系统存储器402,连接不同系统组件(包括系统存储器402和处理单元401)的总线403。
总线403表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备40典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备40访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器402可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)404和/或高速缓存存储器405。电子设备40可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统406可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线403相连。存储器402可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块407的程序/实用工具408,可以存储在例如存储器402中,这样的程序模块407包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块407通常执行本发明所描述的实施例中的功能和/或方法。
电子设备40也可以与一个或多个外部设备409(例如键盘、指向设备、显示器410等)通信,还可与一个或者多个使得用户能与该电子设备40交互的设备通信,和/或与使得该电子设备40能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口411进行。并且,电子设备40还可以通过网络适配器412与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器412通过总线403与电子设备40的其它模块通信。应当明白,尽管图4中未示出,可以结合电子设备40使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元401通过运行存储在系统存储器402中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的负载调整方法。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行负载调整方法。
该方法包括:
获取标记为可使用状态的各服务器,并确定各服务器所对应的各目标应用服务;
针对各目标应用服务,若监测到与当前目标应用服务所关联的服务器为挂起状态的挂起数据达到预设挂起阈值,则根据所述挂起数据,将与所述当前目标应用服务所关联的其它服务器的标记由不可用状态更新为临时可用状态;
根据可使用状态的服务器和临时可用状态的服务器提供相应的应用服务。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的项目代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的项目代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机项目代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。项目代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种负载调整方法,其特征在于,应用于代理服务器中,包括:
获取标记为可使用状态的各服务器,并确定各服务器所对应的各目标应用服务;
针对各目标应用服务,若监测到与当前目标应用服务所关联的服务器为挂起状态的挂起数据达到预设挂起阈值,则根据所述挂起数据,将与所述当前目标应用服务所关联的其它服务器的标记由不可用状态更新为临时可用状态;
根据可使用状态的服务器和临时可用状态的服务器提供相应的应用服务。
2.根据权利要求1所述的方法,其特征在于,在所述获取标记为可使用状态的各服务器,并确定各服务器所对应的各目标应用服务之前,还包括:
启动各机房中的服务器,并确定与各目标应用服务对应的服务器列表;其中,所述服务器列表中包括与每个目标应用服务所关联的服务器;
根据所述服务器列表确定目标机房中各目标应用服务所关联的服务器,并在所述服务器列表中将所述服务器调整为可使用状态,以基于所述服务器列表获取标记为可使用状态的服务器。
3.根据权利要求2所述的方法,其特征在于,所述根据所述服务器列表确定目标机房中各目标应用服务所关联的服务器,包括:
根据环境变量值,以及各服务器的业务路由信息,确定所述代理服务器与各服务器的网络连接信息;其中,所述业务路由信息包括服务器的IP地址、端口以及数据传输协议;
基于所述网络连接信息,确定属于所述目标机房的服务器,以在所述服务器列表中将与所述目标机房关联的服务器调整为可使用状态。
4.根据权利要求2所述的方法,其特征在于,所述针对各目标应用服务,若监测到与当前目标应用服务所关联的服务器为挂起状态的挂起数据达到预设挂起阈值,则根据所述挂起数据,将与所述当前目标应用服务所关联的其它服务器的标记由不可用状态更新为临时可用状态,包括:
针对各目标应用服务,对所述目标机房中与所述当前目标应用服务所关联的各服务器进行心跳检测;
若在预设时长内未接收到与所述心跳检测相对应的反馈数据,则将相应的服务器标记为挂起状态;
若检测到存在挂起状态的待恢复服务器,则确定所述待恢复服务器的待恢复数量和与所述当前目标应用服务所对应的服务器的总数量之间的比例关系;
若所述比例关系达到所述预设挂起阈值,则从与所述当前目标应用服务所关联的标记为不可用状态的服务器中,确定与所述待恢复数量相同的服务器,并将所述服务器的标记由不可用状态更新为临时可用状态。
5.根据权利要求4所述的方法,其特征在于,所述从与所述当前目标应用服务所关联的标记为不可用状态的服务器中,确定与所述待恢复数量相同的服务器,包括:
根据所述当前目标应用服务的标识,在所述服务器列表中,确定出与所述当前目标应用服务所关联的标记为不可用状态的服务器。
6.根据权利要求4所述的方法,其特征在于,还包括:
若检测到所述服务器列表中不包括标记为挂起状态的服务器,则在所述服务器列表中将服务器的标记由临时可用状态更新为不可用状态,以基于所述服务器列表中标记为可使用状态的服务器提供相应的应用服务。
7.根据权利要求4所述的方法,其特征在于,还包括:
若检测到所述服务器列表中包括标记为挂起状态的服务器,则保持各服务器的使用状态不变。
8.一种负载调整装置,其特征在于,部署于代理服务器中,包括:
可使用状态服务器获取模块,用于获取标记为可使用状态的各服务器,并确定各服务器所对应的各目标应用服务;
服务器状态更新模块,用于针对各目标应用服务,若监测到与当前目标应用服务所关联的服务器为挂起状态的挂起数据达到预设挂起阈值,则根据所述挂起数据,将与所述当前目标应用服务所关联的其它服务器的标记由不可用状态更新为临时可用状态;
服务模块,用于根据可使用状态的服务器和临时可用状态的服务器提供相应的应用服务。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的负载调整方法。
10.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一所述的负载调整方法。
CN202111272587.8A 2021-10-29 2021-10-29 负载调整方法、装置、电子设备及存储介质 Pending CN113946376A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111272587.8A CN113946376A (zh) 2021-10-29 2021-10-29 负载调整方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111272587.8A CN113946376A (zh) 2021-10-29 2021-10-29 负载调整方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN113946376A true CN113946376A (zh) 2022-01-18

Family

ID=79337212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111272587.8A Pending CN113946376A (zh) 2021-10-29 2021-10-29 负载调整方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113946376A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114827163A (zh) * 2022-05-07 2022-07-29 金腾科技信息(深圳)有限公司 服务器负载均衡的处理方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158911A (zh) * 2014-09-01 2014-11-19 青岛海信电器股份有限公司 一种面向服务器集群的控制方法及系统
CN106375395A (zh) * 2016-08-30 2017-02-01 厦门中学西渐信息科技有限公司 节点服务器的负载均衡方法和系统
CN107800551A (zh) * 2016-08-31 2018-03-13 北京优朋普乐科技有限公司 Redis集群系统及其提高可靠性的方法、客户端
CN109669758A (zh) * 2018-09-11 2019-04-23 深圳平安财富宝投资咨询有限公司 服务器资源的调配方法、装置、设备及存储介质
CN110196767A (zh) * 2018-03-05 2019-09-03 腾讯科技(深圳)有限公司 服务资源控制方法、装置、设备和存储介质
CN110515728A (zh) * 2019-08-19 2019-11-29 杭州迪普科技股份有限公司 服务器调度方法、装置、电子设备及机器可读存储介质
CN110809060A (zh) * 2019-11-18 2020-02-18 北京东方通科技股份有限公司 一种应用服务器集群的监控系统及监控方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158911A (zh) * 2014-09-01 2014-11-19 青岛海信电器股份有限公司 一种面向服务器集群的控制方法及系统
CN106375395A (zh) * 2016-08-30 2017-02-01 厦门中学西渐信息科技有限公司 节点服务器的负载均衡方法和系统
CN107800551A (zh) * 2016-08-31 2018-03-13 北京优朋普乐科技有限公司 Redis集群系统及其提高可靠性的方法、客户端
CN110196767A (zh) * 2018-03-05 2019-09-03 腾讯科技(深圳)有限公司 服务资源控制方法、装置、设备和存储介质
CN109669758A (zh) * 2018-09-11 2019-04-23 深圳平安财富宝投资咨询有限公司 服务器资源的调配方法、装置、设备及存储介质
CN110515728A (zh) * 2019-08-19 2019-11-29 杭州迪普科技股份有限公司 服务器调度方法、装置、电子设备及机器可读存储介质
CN110809060A (zh) * 2019-11-18 2020-02-18 北京东方通科技股份有限公司 一种应用服务器集群的监控系统及监控方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114827163A (zh) * 2022-05-07 2022-07-29 金腾科技信息(深圳)有限公司 服务器负载均衡的处理方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US11218445B2 (en) System and method for implementing a web application firewall as a customized service
EP2871553B1 (en) Systems and methods for protecting virtualized assets
US7793140B2 (en) Method and system for handling failover in a distributed environment that uses session affinity
CN110839084B (zh) 会话管理方法、装置、设备和介质
CN108696581B (zh) 分布式信息的缓存方法、装置、计算机设备以及存储介质
JP2005539298A (ja) サーバを遠隔かつ動的に構成する方法およびシステム
US9390156B2 (en) Distributed directory environment using clustered LDAP servers
CN113765980A (zh) 一种限流方法、装置、系统、服务器和存储介质
CN111131505A (zh) 基于p2p网络的数据传输方法、设备、系统、装置及介质
CN110633046A (zh) 一种分布式系统的存储方法、装置、存储设备及存储介质
CN112769876B (zh) 一种设备通道信息获取方法、装置、设备和介质
CN110881224B (zh) 一种网络长连接方法、装置、设备及存储介质
CN113946376A (zh) 负载调整方法、装置、电子设备及存储介质
US9349012B2 (en) Distributed processing system, distributed processing method and computer-readable recording medium
CN109445966B (zh) 事件处理方法、装置、介质和计算设备
WO2022199206A1 (zh) 用于虚拟机的内存共享方法及装置
CN114785861A (zh) 一种服务请求转发系统、方法、计算机设备和存储介质
CN115220640A (zh) 用于处理数据的方法、电子设备和计算机程序产品
US20070030813A1 (en) Monitoring a problem condition in a communications protocol implementation
CN111416852A (zh) 在多个负载均衡器之间进行会话同步的方法和负载均衡器
CN112965763B (zh) 一种业务处理系统、方法、装置和存储介质
CN111614763B (zh) 一种动态调整应用服务器负载的方法、设备、存储介质
CN109639686B (zh) 分布式网页过滤方法、装置、电子设备、存储介质
JP6380774B1 (ja) コンピュータシステム、サーバ装置、プログラム及び障害検出方法
CN113612837A (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