CN112769884A - 双层反向代理系统及其动态自均衡调节方法 - Google Patents
双层反向代理系统及其动态自均衡调节方法 Download PDFInfo
- Publication number
- CN112769884A CN112769884A CN201911061733.5A CN201911061733A CN112769884A CN 112769884 A CN112769884 A CN 112769884A CN 201911061733 A CN201911061733 A CN 201911061733A CN 112769884 A CN112769884 A CN 112769884A
- Authority
- CN
- China
- Prior art keywords
- service
- service node
- node
- agent
- proxy
- 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.)
- Withdrawn
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/50—Network services
- H04L67/56—Provisioning of proxy services
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种双层反向代理系统及其动态自均衡调节方法,双层反向代理系统包括物理代理层和虚拟化代理层,物理代理层实现硬件代理,虚拟化代理层实现虚拟代理,通过硬件代理与虚拟代理相结合的方式,可以保证双层反向代理系统的代理服务,而且通过虚拟化代理层实现的两次动态均衡,实现根据业务需求动态调节负载分发策略,可以增加双层反向代理系统所处的通信系统的负载能力,可以适应多样化的分发需求。
Description
技术领域
本发明涉及计算机网络技术领域,更具体地,涉及双层反向代理系统及其动态自均衡调节方法。
背景技术
在计算机网络中,代理服务器的代理方式通常包括正向代理和反向代理。正向代理是指代理服务器作为客户端的代理使用,根据客户端的请求,将从其关联的一组或多组后端服务器(如Web服务器等)获取的资源返回至一个或多个客户端,后端服务器只知道代理服务器的IP地址而不知道客户端的IP地址;反向代理是指代理服务器作为后端服务器的代理使用,根据客户端的请求,从其关联的一组或多组后端服务器上获取资源,然后再将这些资源返回给客户端,客户端只会知晓代理服务器的IP地址,而不知道在代理服务器后面的后端服务器的存在。
如图1所示,为现有技术中通过反向代理系统实现代理的通信系统的结构示意图。图1中客户端01通过网络通道02与反向代理系统03通信连接,反向代理系统03与后端服务器04通信连接。
现有技术中常用的反向代理系统,其代理模式简单,分发算法比较单一,无法适应多样化的分发需求。
发明内容
为克服上述问题或者至少部分地解决上述问题,本发明实施例提供了一种双层反向代理系统及其动态自均衡调节方法。
第一方面,本发明实施例提供了一种双层反向代理系统,包括:物理代理层和虚拟化代理层;
物理代理层包括多个网关机,每个网关机包括硬件代理模块和连接检测模块,所述虚拟化代理层包括多个虚拟化代理节点以及微服务节点组,所述虚拟化代理节点和所述微服务节点组分别与所述连接检测模块连接,所述微服务节点组包括缓存服务节点和业务服务节点;
所述硬件代理模块用于基于分片加权算法调用所述虚拟化代理节点;所述连接检测模块用于基于每个网关机的在线状态信息,向对应的网关机分配客户端的目标虚拟IP地址,以使对应的网关机与所述目标虚拟IP地址进行绑定;所述虚拟化代理节点用于基于每个业务服务节点的工作状态信息以及轮询调度算法调用所述业务服务节点;
所述缓存服务节点用于存储每个网关机的在线状态信息、所述目标虚拟IP地址的绑定状态信息以及每个业务服务节点的工作状态信息,所述业务服务节点用于为客户端提供服务。
优选地,所述的双层反向代理系统还包括:服务编排器;
所述服务编排器分别与所述虚拟化代理节点和所述微服务节点组连接;所述服务编排器用于基于所述虚拟化代理节点的指示,管理每个业务服务节点,并更新所述缓存服务节点存储的每个业务服务节点的工作状态信息。
优选地,所述多个网关机包括初始时刻绑定所述目标虚拟IP地址的第一网关机和除所述第一网关机外的第二网关机;
所述第一网关机中的连接检测模块具体用于:
控制所述第一网关机释放除所述目标虚拟IP地址外的其他虚拟IP地址,并向所述缓存服务节点进行注册;
在当前时刻绑定所述目标虚拟IP地址的第二网关机下线后,将所述目标虚拟IP地址绑定至所述第一网关机。
优选地,所述第二网关机中的连接检测模块具体用于:
扫描所述缓存服务节点,若判断获知所述第一网关机上线,则控制所述第二网关机释放所述目标虚拟IP地址,以使所述目标虚拟IP地址重新绑定至所述第一网关机上;
否则,读取所述缓存服务节点中所述第一网关机绑定所述目标虚拟IP地址的初始时刻,若判断获知当前时刻与所述初始时刻的时间间隔大于预设时间间隔,则将所述目标虚拟IP地址绑定至所述第二网关机上。
优选地,所述缓存服务节点包括:多个业务队列,所述业务队列与所述业务服务节点一一对应,所述业务队列用于存储对应的业务服务节点当前时刻未完成处理的调用任务信息;相应地,
所述虚拟化代理节点具体用于:
分别确定所述缓存服务节点中每个业务队列的长度以及每个业务队列对应的业务服务节点的平均响应时间;
基于每个业务队列的长度以及每个业务队列对应的业务服务节点的平均响应时间,选择目标业务服务节点进行调用,并更新所述缓存服务节点以及所述缓存服务节点中所述目标业务服务节点对应的目标业务队列。
优选地,所述基于每个业务队列的长度以及每个业务队列对应的业务服务节点的平均响应时间,选择目标业务服务节点进行调用,具体包括:
对于每个业务队列,若所述业务队列的长度小于第一阈值,且所述业务队列对应的业务服务节点的平均响应时间小于第二阈值,则判断所述业务队列对应的业务服务节点是否存在拒绝服务攻击;
若存在拒绝服务攻击,则剔除所述业务队列对应的业务服务节点;
若不存在拒绝服务攻击,则从所有不存在拒绝服务攻击的业务服务节点中选取所述目标业务服务节点进行调用。
第二方面,本发明实施例提供了一种双层反向代理系统的动态自均衡调节方法,包括:
双层反向代理系统中的硬件代理模块基于分片加权算法调用所述虚拟化代理节点,以进行第一次均衡调节;
所述双层反向代理系统中的虚拟化代理节点基于每个业务服务节点的工作状态信息以及轮询调度算法调用所述业务服务节点,以进行第二次均衡调节。
优选地,所述双层反向代理系统中的虚拟化代理节点基于每个业务服务节点的工作状态信息以及轮询调度算法调用所述业务服务节点,以进行第二次均衡调节,具体包括:
分别确定所述双层反向代理系统中的缓存服务节点中每个业务队列的长度以及每个业务队列对应的业务服务节点的平均响应时间;
基于每个业务队列的长度以及每个业务队列对应的业务服务节点的平均响应时间,选择目标业务服务节点进行调用,并更新所述缓存服务节点以及所述缓存服务节点中所述目标业务服务节点对应的目标业务队列。
第三方面,本发明实施例提供了一种电子设备,包括:
至少一个处理器、至少一个存储器、通信接口和总线;其中,
所述处理器、存储器、通信接口通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令,以执行第二方面提供的双层反向代理系统的动态自均衡调节方法。
第四方面,本发明实施例提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面提供的双层反向代理系统的动态自均衡调节方法。
本发明实施例提供的一种双层反向代理系统及其动态自均衡调节方法双层反向代理系统,包括物理代理层和虚拟化代理层,物理代理层实现硬件代理,虚拟化代理层实现虚拟代理,通过硬件代理与虚拟代理相结合的方式,可以保证双层反向代理系统的代理服务,而且通过虚拟化代理层实现的两次动态均衡,实现根据业务需求动态调节负载分发策略,可以增加双层反向代理系统所处的通信系统的负载能力,可以适应多样化的分发需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中通过反向代理系统实现代理的通信系统的结构示意图;
图2为本发明实施例提供的一种双层反向代理系统的结构示意图;
图3为本发明实施例提供的一种双层反向代理系统的结构示意图;
图4为本发明实施例提供的一种双层反向代理系统中服务编排器与微服务节点组连接的结构示意图;
图5为本发明实施例提供的一种双层反向代理系统中第一网关机经历下线后上线时,第一网关机中的连接检测模块的操作流程示意图;
图6为本发明实施例提供的一种双层反向代理系统中绑定目标虚拟IP地址的第二网关机下线后再次上线时,第二网关机中的连接检测模块的操作流程示意图;
图7为本发明实施例提供的一种应用于全国级的双层反向代理系统的结构示意图;
图8为本发明实施例提供的一种双层反向代理系统中硬件代理模块实现分片加权算法的流程示意图;
图9为本发明实施例提供的一种双层反向代理系统中虚拟化代理节点的操作流程示意图;
图10为本发明实施例提供的一种双层反向代理系统的动态自均衡调节方法的流程示意图;
图11为本发明实施例提供的一种双层反向代理系统的动态自均衡调节方法的交互示意图;
图12为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图2所示,本发明实施例提供了一种双层反向代理系统,包括:物理代理层1和虚拟化代理层2;
物理代理层1包括多个网关机11,每个网关机11包括硬件代理模块111和连接检测模块112,所述虚拟化代理层2包括多个虚拟化代理节点21以及微服务节点组22,所述虚拟化代理节点21和所述微服务节点组22分别与所述连接检测模块111连接,所述微服务节点组22包括缓存服务节点221和业务服务节点222;
硬件代理模块111用于基于分片加权算法调用所述虚拟化代理节点21;连接检测模块112用于基于每个网关机的在线状态信息,向对应的网关机11分配客户端的目标虚拟IP地址,以使对应的网关机11与目标虚拟IP地址进行绑定;虚拟化代理节点21用于基于每个业务服务节点222的工作状态信息及轮询调度算法调用业务服务节点222。
缓存服务节点221用于存储每个网关机的在线状态信息、目标虚拟IP地址的绑定状态信息以及每个业务服务节点222的工作状态信息,业务服务节点222用于为客户端提供服务。
具体地,本发明实施例中提供的双层反向代理系统,物理代理层1用于实现硬件代理,虚拟化代理层2用于实现虚拟代理,物理代理为初级代理,虚拟代理为二级代理。初级代理和二级代理之间通过连接检测模块111实现连接。
硬件代理模块111用于调用虚拟化代理节点,具体通过分片加权算法进行调用,利用分片加权算法确定硬件代理模块111选择哪个虚拟化代理节点21,即物理代理层到虚拟化代理层访问时,需按业务逻辑进行负载均衡,因此这一步骤也是虚拟化代理层实现的第一次动态均衡。硬件代理模块111与虚拟化代理节点之间的调用关系可以存储在缓存服务节点内。
连接检测模块112用于基于每个网关机11的在线状态信息,向对应的网关机分配客户端的目标虚拟IP地址,以使对应的网关机与目标虚拟IP地址进行绑定。每个网关机的在线状态信息包括在线和不在线,在线则说明可进行硬件代理,不在线则说明不能进行硬件代理。每个网关机的在线状态信息可以存储在缓存服务节点221内,由缓存服务节点221提供高速缓存服务。连接检测模块112与缓存服务节点221连接,通过缓存服务节点221获取每个网关机11的在线状态信息。网关机与目标虚拟IP地址绑定,通过网关机内包括的网卡实现。目标虚拟IP地址的绑定状态信息可以存储在缓存服务节点221中,目标虚拟IP地址的绑定状态信息是指目标虚拟IP地址与哪个网关机绑定。对应的网关机是指连接检测模块对应的网关机,即连接检测模块所处的网关机。连接检测模块112根据每个网关机的在线状态信息,确定是否可以向所处的网关机分配客户端的目标虚拟IP地址。
微服务节点组22中缓存服务节点221和业务服务节点222的数量可以根据需要进行划分,例如微服务节点组22中可以有2个缓存服务节点221,有8个业务服务节点222,8个业务服务节点222中有4个数据节点和4个服务节点。微服务节点组22中还可以包括同步协调服务节点,用于进行时间同步。同步协调服务节点的数量可以根据需要进行设定,例如2个等。
虚拟化代理节点21基于每个业务服务节点222的工作状态信息以及轮询调度算法调用业务服务节点222。每个业务服务节点的工作状态信息可以包括调用状态信息和任务处理状态信息,调用状态信息是指每个业务服务节点被哪个或哪些虚拟化代理节点调用,任务处理状态信息是指每个业务服务节点的响应时间、当前时刻未完成处理的调用任务信息等,每个业务服务节点的工作状态信息均可以存储在缓存服务节点内。虚拟化代理节点可以根据双层反向代理系统中每个业务服务节点的工作状态信息,结合轮询调度算法,从所有业务服务节点中选择最优的业务服务节点进行调用。即虚拟化代理层内虚拟化代理节点到业务服务节点访问时,需按业务服务节点的工作状态信息进行负载均衡,因此这一步骤也是虚拟化代理层实现的第二次动态均衡。
本发明实施例中,当客户端向双层反向代理系统发起外部访问时,由双层反向代理系统中每个网关机内的连接检测模块分别判断所处的网关机是否能够绑定客户端的目标虚拟IP地址,并最终竞争选出一个目标网关机。然后,通过目标网关机内的硬件代理模块基于分片加权算法从双层反向代理系统中的所有虚拟化代理节点中选择目标虚拟化代理节点进行调用,实现初次代理。最后,目标虚拟化代理节点根据双层反向代理系统中每个业务服务节点的工作状态信息,利用轮询调度算法,从双层反向代理系统中选择目标业务服务节点进行调用,实现二次代理,并通过选择的目标业务服务节点为客户端进行服务。
需要说明的是,本发明实施例中的各节点均是双层反向代理系统的拓扑结构中的节点,均是指实现各种功能的服务器。
本发明实施例中提供的双层反向代理系统,包括物理代理层和虚拟化代理层,物理代理层实现硬件代理,虚拟化代理层实现虚拟代理,通过硬件代理与虚拟代理相结合的方式,可以保证双层反向代理系统的代理服务,而且通过虚拟化代理层实现的两次动态均衡,实现根据业务需求动态调节负载分发策略,可以增加双层反向代理系统所处的通信系统的负载能力,可以适应多样化的分发需求。
在上述实施例的基础上,本发明实施例中提供的双层反向代理系统,还包括:服务编排器;
所述服务编排器分别与所述虚拟化代理节点和所述微服务节点组连接;所述容器编排器用于基于所述虚拟化代理节点的指示,管理每个业务服务节点,并更新所述缓存服务节点存储的每个业务服务节点的工作状态信息。
具体地,如图3所示,双层反向代理系统还包括:服务编排器3,服务编排器3分别与所述虚拟化代理节点21和微服务节点组22连接,即服务编排器3与所有虚拟化代理节点和微服务节点组中的所有节点均连接,以实现根据每个虚拟化代理节点的指示,对微服务节点组中的所有节点进行综合管理功能。服务编排器3对微服务节点组的管理,具体可以体现在双层反向代理系统每次收到外部访问时,根据目标虚拟化代理节点的指示,管理每个业务服务节点,并更新所述缓存服务节点存储的每个业务服务节点的工作状态信息。目标虚拟化代理节点的指示是基于缓存服务节点存储的每个业务服务节点的工作状态信息确定的指示,用于表征每个业务服务节点是否异常。
如图4所示,为本发明实施例中提供的双层反向代理系统中服务编排器与微服务节点组连接的结构示意图。图4中缓存服务节点中存储的内容包括:业务服务节点列表、业务服务元数据和业务服务节点的工作状态信息,工作状态信息包括调用状态信息以及任务处理状态信息,任务处理状态信息包括业务服务节点上次响应情况以及多个业务队列,业务队列与业务服务节点一一对应,业务队列用于存储对应的业务服务节点当前时刻未完成处理的调用任务信息。图4中仅示出了缓存服务节点中的一个业务队列。业务队列中存储有对应的业务服务节点的注册时间、响应时间、排队量、吞吐量以及平均时延。一方面,虚拟化代理节点根据缓存服务节点中存储的每个业务服务节点的工作状态信息以及轮询调度算法选择调用的业务服务节点。另一方面,服务编排器根据缓存服务节点存储的每个业务服务节点的工作状态信息,管理每个业务服务节点,当某个业务服务节点存在异常时,根据预先设置的规则,将该业务服务节点重启、停用或者剔除。
本发明实施例中,将虚拟化代理节点与服务编排器之间通过缓存服务节点连接,将服务编排器融入双层反向代理系统中,实现统一协调进行运行管理。
在上述实施例的基础上,本发明实施例中提供的双层反向代理系统,物理代理层实现服务对外接口的完全高可用,通过分享目标虚拟IP地址的方式实现,摒弃了传统的基于TCP端口连接检测的方式。各个网关机都实时通过连接检测模块与缓存服务模块交互,保存每个网关机当前的在线状态。
在上述实施例的基础上,本发明实施例中提供的双层反向代理系统,所述多个网关机包括初始时刻绑定所述目标虚拟IP地址的第一网关机和除所述第一网关机外的第二网关机;
所述第一网关机中的连接检测模块具体用于:
控制所述第一网关机释放除所述目标虚拟IP地址外的其他虚拟IP地址,并向所述缓存服务节点进行注册;
在当前时刻绑定所述目标虚拟IP地址的第二网关机下线后,将所述目标虚拟IP地址绑定至所述第一网关机。
具体地,本发明实施例中在初始时刻从多个网关机中选择一个网关机绑定目标虚拟IP地址,将初始时刻与目标虚拟IP地址绑定的网关机记为第一网关机,因此本发明实施例中将双层反向代理系统中的多个网关机分为第一网关机和第二网关机,第二网关机是指除第一网关机外的每个网关机。从双层反向代理系统的拓扑结构来说,第一网关机为主节点,第二网关机为从节点。
第一网关机在绑定目标虚拟IP地址后,若下线,则由第二网关机与目标虚拟IP地址进行绑定为客户端实现代理服务;当第一网关机再次上线时,按照传统的实现,是不需要进行额外处理的,保证第二网关机继续与目标虚拟IP地址进行绑定。但在部分非对等网络中,第二网关机一般是配置较低的附属资源,无法和第一网关机相比,故本发明实施例中兼顾解决了不对等网络中的客观实际问题,如图5所示,在第一网关机经历下线后上线时,第一网关机中的连接检测模块扫描第一网关机的网卡,控制第一网关机释放除目标虚拟IP地址外的其他虚拟IP地址,然后向缓存服务节点进行注册,即告知缓存服务节点第一网关机已上线,然后等待当前时刻绑定目标虚拟IP地址的第二网关机下线,在绑定目标虚拟IP地址的第二网关机下线后,将目标虚拟IP地址绑定至第一网关机。
需要说明的是,第二网关机发现第一网关机下线后,将目标虚拟IP地址绑定到自身网卡,并在缓存服务节点中注册当前运行的是第二网关机。任何网关机重启(即经历在线、下线以及在线的过程)后,都需要清楚自身绑定的虚拟IP地址,等待与缓存服务模块同步后再行绑定。本发明实施例中无额外TCP端口连接检测操作,基于缓存服务节点即可实现。第二网关机下线到第一网关机上线,需要一定时间间隔,配合异步消息机制,可以实现间隔到秒级或者毫秒级(取决于网卡速度)。
在上述实施例的基础上,本发明实施例中提供的双层反向代理系统,所述第二网关机中的连接检测模块具体用于:
扫描所述缓存服务节点,若判断获知所述第一网关机上线,则控制所述第二网关机释放所述目标虚拟IP地址,以使所述目标虚拟IP地址重新绑定至所述第一网关机上;
否则,读取所述缓存服务节点中所述第一网关机绑定所述目标虚拟IP地址的初始时刻,若判断获知当前时刻与所述初始时刻的时间间隔大于预设时间间隔,则将所述目标虚拟IP地址绑定至所述第二网关机上。
具体地,本发明实施例中,在第一网关机下线且第二网关机绑定目标虚拟IP地址后,若绑定目标虚拟IP地址的第二网关机下线,则绑定目标虚拟IP地址的第二网关机再次上线时,如图6所示,第二网关机中的连接检测模块首先进行初始化,然后扫描缓存服务节点,根据缓存服务节点存储的内容,确定第一网关机,并判断第一网关机是否上线,如果第一网关机上线,则控制第二网关机释放目标虚拟IP地址,以使目标虚拟IP地址重新绑定至第一网关机上;如果第一网关机未上线,则读取缓存服务节点中第一网关机绑定目标虚拟IP地址的初始时刻,并判断当前时刻与初始时刻的时间间隔,如果时间间隔大于预设时间间隔,则将目标虚拟IP地址绑定至第二网关机上,如果时间间隔小于等于预设时间间隔,则再次扫描缓存服务节点。
本发明实施例中提供的双层反向代理系统,其中网关机的连接检测模块可以保证只要第一网关机在线,则就通过第一网关机绑定目标虚拟IP地址,解决了网关网络分配不均场景下的选主问题。
在上述实施例的基础上,本发明实施例中提供的双层反向代理系统,在硬件代理模块确定虚拟化代理节点时,采用分片加权算法实现。分片加权算法需要先将业务相近的一组业务服务节点归为一个分片,一个虚拟化代理节点仅代理一个分片的业务访问,对分片进行加权判断并选择最终的虚拟化代理节点。虚拟化代理节点到业务服务节点访问时,虚拟化代理节点采用基于顺序轮询访问算法,排除拒绝服务的业务服务节点。当判断出异常业务服务节点时,向服务编排器发出指示,使服务编排器进行业务服务节点的重新编排。
在如图7所示的应用于全国级的双层反向代理系统中,需要根据区域、业务或其他参数进行负载划分。图7中包括1个网关机71、4个虚拟化代理节点72、73、74、75以及16个业务服务节点,4个虚拟化代理节点72、73、74、75分别代理华北区业务、东南区业务、东北区业务以及其他区业务,16个业务服务节点分别为统计服务单元a1、统计服务单元a2、处理服务单元a3、处理服务单元a4、统计服务单元b1、统计服务单元b2、处理服务单元b3、处理服务单元b4、统计服务单元c1、统计服务单元c2、处理服务单元c3、处理服务单元c4。网关机71根据业务地址、目标虚拟IP地址计算分片,结合现有分片负载情况进行加权,实现虚拟化代理层的第一次动态均衡,确定调用虚拟化代理节点73。然后,由虚拟化代理节点73实现虚拟化代理层的第二次动态均衡,确定处理服务节点b3和处理服务节点b4进行业务处理。
如图8所示,分片加权算法首先依次计算区域地址分片、业务地址分片以及其他参数分片,然后对计算得到的分片进行加权,将加权得到的结果进行哈希运算,确定分片标识,判断分片标识表征的分片是否可用,如果可用则选择该分片对应的虚拟化代理节点作为目标虚拟化代理节点进行二级代理,如果不可用,则剔除该分片,重新将加权得到的结果进行哈希运算。其中,哈希运算具体可以是一致性哈希运算。
在上述实施例的基础上,本发明实施例中提供的双层反向代理系统,所述缓存服务节点包括:多个业务队列,所述业务队列与所述业务服务节点一一对应,所述业务队列用于存储所述业务服务节点当前时刻未完成处理的调用任务信息;相应地,
所述虚拟化代理节点具体用于:
分别确定所述缓存服务节点中每个业务队列的长度以及每个业务队列对应的业务服务节点的平均响应时间;
基于每个业务队列的长度以及每个业务队列对应的业务服务节点的平均响应时间,选择目标业务服务节点进行调用,并更新所述缓存服务节点以及所述缓存服务节点中所述目标业务服务节点对应的目标业务队列。
具体地,本发明实施例中,虚拟化代理节点首先确定确定缓存服务节点中每个业务队列的长度,然后确定每个业务队列对应的业务服务节点的平均响应时间,从所有业务服务节点中选择目标业务服务节点继续调用。其中,目标业务服务节点可以指最优的业务服务节点,既可以指业务队列的长度最小且平均响应时间最短的业务服务节点,也可以指业务队列的长度与平均响应时间二者加权最小的业务服务节点。
在上述实施例的基础上,本发明实施例中提供的双层反向代理系统,所述基于每个业务队列的长度以及每个业务队列对应的业务服务节点的平均响应时间,选择目标业务服务节点进行调用,具体包括:
对于每个业务队列,若所述业务队列的长度小于第一阈值,且所述业务队列对应的业务服务节点的平均响应时间小于第二阈值,则判断所述业务队列对应的业务服务节点是否存在拒绝服务攻击;
若存在拒绝服务攻击,则剔除所述业务队列对应的业务服务节点
若不存在拒绝服务攻击,则从所有不存在拒绝服务攻击的业务服务节点中选取所述目标业务服务节点进行调用。
具体地,本发明实施例中,如图9所示,虚拟化代理节点首先确定确定缓存服务节点中每个业务队列的长度,然后确定每个业务队列对应的业务服务节点的平均响应时间,判断长度是否小于第一阈值以及平均响应时间是否小于第二阈值,如果存在业务服务节点,业务队列的长度小于第一阈值且平均响应时间小于第二阈值,则说明该业务服务节点可以用于服务客户端,若业务队列的长度大于等于第一阈值或平均响应时间大于等于第二阈值,则说明该业务服务节点繁忙。对于可以服务客户端的业务服务节点,进一步判断是否存在拒绝服务攻击,若存在,则通知服务编排器,由服务编排器对存在拒绝服务攻击的业务服务节点进行重启调整或剔除业务服务节点并告警。然后再判断其他业务服务节点。最后,对于所有可以服务客户端且不存在拒绝服务攻击的业务服务节点,判断其中是否具有目标业务服务节点,若有则选择目标业务服务节点进行调用,若没有则通知客户端发起重试。其中,目标业务服务节点是指最优的业务服务节点,可以是指业务队列的长度最小且平均响应时间最短的业务服务节点,或者二者加权最小的业务服务节点。
如图10所示,在上述实施例的基础上,本发明实施例中提供了一种双层反向代理系统的动态自均衡调节方法,包括:
S101,双层反向代理系统中的硬件代理模块基于分片加权算法调用所述虚拟化代理节点,以进行第一次均衡调节;
S102,所述双层反向代理系统中的虚拟化代理节点基于每个业务服务节点的工作状态信息以及轮询调度算法调用所述业务服务节点,以进行第二次均衡调节。
具体地,本发明实施例中执行主体为双层反向代理系统,其中步骤S101由双层反向代理系统中的硬件代理模块实现,步骤S102由双层反向代理系统中的虚拟化代理节点实现。具体的实现方式与上述系统类实施例中各模块的处理过程是一一对应的,实现的效果也是一致的,本发明实施例中对此不再赘述。
在上述实施例的基础上,本发明实施例中提供的双层反向代理系统的动态自均衡调节方法,所述双层反向代理系统中的虚拟化代理节点基于每个业务服务节点的工作状态信息以及轮询调度算法调用所述业务服务节点,以进行第二次均衡调节,具体包括:
分别确定所述双层反向代理系统中的缓存服务节点中每个业务队列的长度以及每个业务队列对应的业务服务节点的平均响应时间;
基于每个业务队列的长度以及每个业务队列对应的业务服务节点的平均响应时间,选择目标业务服务节点进行调用,并更新所述缓存服务节点以及所述缓存服务节点中所述目标业务服务节点对应的目标业务队列。
如图11所示,为本发明实施例中提供的双层反向代理系统的动态自均衡调节方法的交互示意图。图11中,由硬件代理模块基于分片加权算法进行首次调用,实现初级代理,并实现虚拟化代理层的第一次自动均衡。并通过连接检测模块向虚拟化代理节点发送调用请求,虚拟化代理节点则向缓存服务节点登记调用,并从缓存服务节点确定业务服务节点进行调用。虚拟化代理节点将业务服务节点的调用加入对应的业务队列中,并判断该业务队列的长度以及业务服务节点的平均响应时间是否分别超过第一阈值和第二阈值,并反馈结果。虚拟化代理节点对业务服务节点进行调用,由业务服务节点进行调用返回。虚拟化代理节点更新业务队列以及缓存服务节点。虚拟化代理节点将调用返回至硬件代理模块。
图12所示,在上述实施例的基础上,本发明实施例中提供了一种电子设备,包括:处理器(processor)121、存储器(memory)122、通信接口(Communications Interface)123和总线124;其中,
所述处理器121、存储器122、通信接口123通过总线124完成相互间的通信。所述存储器122存储有可被所述处理器121执行的程序指令,处理器121用于调用存储器122中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:双层反向代理系统中的硬件代理模块基于分片加权算法调用所述虚拟化代理节点,以进行第一次均衡调节;所述双层反向代理系统中的虚拟化代理节点基于每个业务服务节点的工作状态信息以及轮询调度算法调用所述业务服务节点,以进行第二次均衡调节。
存储器122中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在上述实施例的基础上,本发明实施例中提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:双层反向代理系统中的硬件代理模块基于分片加权算法调用所述虚拟化代理节点,以进行第一次均衡调节;所述双层反向代理系统中的虚拟化代理节点基于每个业务服务节点的工作状态信息以及轮询调度算法调用所述业务服务节点,以进行第二次均衡调节。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种双层反向代理系统,其特征在于,包括:物理代理层和虚拟化代理层;
物理代理层包括多个网关机,每个网关机包括硬件代理模块和连接检测模块,所述虚拟化代理层包括多个虚拟化代理节点以及微服务节点组,所述虚拟化代理节点和所述微服务节点组分别与所述连接检测模块连接,所述微服务节点组包括缓存服务节点和业务服务节点;
所述硬件代理模块用于基于分片加权算法调用所述虚拟化代理节点;所述连接检测模块用于基于每个网关机的在线状态信息,向对应的网关机分配客户端的目标虚拟IP地址,以使对应的网关机与所述目标虚拟IP地址进行绑定;所述虚拟化代理节点用于基于每个业务服务节点的工作状态信息以及轮询调度算法调用所述业务服务节点;
所述缓存服务节点用于存储每个网关机的在线状态信息、所述目标虚拟IP地址的绑定状态信息以及每个业务服务节点的工作状态信息,所述业务服务节点用于为客户端提供服务。
2.根据权利要求1所述的双层反向代理系统,其特征在于,还包括:服务编排器;
所述服务编排器分别与所述虚拟化代理节点和所述微服务节点组连接;所述服务编排器用于基于所述虚拟化代理节点的指示,管理每个业务服务节点,并更新所述缓存服务节点存储的每个业务服务节点的工作状态信息。
3.根据权利要求1所述的双层反向代理系统,其特征在于,所述多个网关机包括初始时刻绑定所述目标虚拟IP地址的第一网关机和除所述第一网关机外的第二网关机;
所述第一网关机中的连接检测模块具体用于:
控制所述第一网关机释放除所述目标虚拟IP地址外的其他虚拟IP地址,并向所述缓存服务节点进行注册;
在当前时刻绑定所述目标虚拟IP地址的第二网关机下线后,将所述目标虚拟IP地址绑定至所述第一网关机。
4.根据权利要求3所述的双层反向代理系统,其特征在于,所述第二网关机中的连接检测模块具体用于:
扫描所述缓存服务节点,若判断获知所述第一网关机上线,则控制所述第二网关机释放所述目标虚拟IP地址,以使所述目标虚拟IP地址重新绑定至所述第一网关机上;
否则,读取所述缓存服务节点中所述第一网关机绑定所述目标虚拟IP地址的初始时刻,若判断获知当前时刻与所述初始时刻的时间间隔大于预设时间间隔,则将所述目标虚拟IP地址绑定至所述第二网关机上。
5.根据权利要求1所述的双层反向代理系统,其特征在于,所述缓存服务节点包括:多个业务队列,所述业务队列与所述业务服务节点一一对应,所述业务队列用于存储对应的业务服务节点当前时刻未完成处理的调用任务信息;相应地,
所述虚拟化代理节点具体用于:
分别确定所述缓存服务节点中每个业务队列的长度以及每个业务队列对应的业务服务节点的平均响应时间;
基于每个业务队列的长度以及每个业务队列对应的业务服务节点的平均响应时间,选择目标业务服务节点进行调用,并更新所述缓存服务节点以及所述缓存服务节点中所述目标业务服务节点对应的目标业务队列。
6.根据权利要求5所述的双层反向代理系统,其特征在于,所述基于每个业务队列的长度以及每个业务队列对应的业务服务节点的平均响应时间,选择目标业务服务节点进行调用,具体包括:
对于每个业务队列,若所述业务队列的长度小于第一阈值,且所述业务队列对应的业务服务节点的平均响应时间小于第二阈值,则判断所述业务队列对应的业务服务节点是否存在拒绝服务攻击;
若存在拒绝服务攻击,则剔除所述业务队列对应的业务服务节点;
若不存在拒绝服务攻击,则从所有不存在拒绝服务攻击的业务服务节点中选取所述目标业务服务节点进行调用。
7.一种双层反向代理系统的动态自均衡调节方法,其特征在于,包括:
双层反向代理系统中的硬件代理模块基于分片加权算法调用所述虚拟化代理节点,以进行第一次均衡调节;
所述双层反向代理系统中的虚拟化代理节点基于每个业务服务节点的工作状态信息以及轮询调度算法调用所述业务服务节点,以进行第二次均衡调节。
8.根据权利要求7所述的双层反向代理系统的动态自均衡调节方法,其特征在于,所述双层反向代理系统中的虚拟化代理节点基于每个业务服务节点的工作状态信息以及轮询调度算法调用所述业务服务节点,以进行第二次均衡调节,具体包括:
分别确定所述双层反向代理系统中的缓存服务节点中每个业务队列的长度以及每个业务队列对应的业务服务节点的平均响应时间;
基于每个业务队列的长度以及每个业务队列对应的业务服务节点的平均响应时间,选择目标业务服务节点进行调用,并更新所述缓存服务节点以及所述缓存服务节点中所述目标业务服务节点对应的目标业务队列。
9.一种电子设备,包括:存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求7或8所述的双层反向代理系统的动态自均衡调节方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求7或8所述的双层反向代理系统的动态自均衡调节方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911061733.5A CN112769884A (zh) | 2019-11-01 | 2019-11-01 | 双层反向代理系统及其动态自均衡调节方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911061733.5A CN112769884A (zh) | 2019-11-01 | 2019-11-01 | 双层反向代理系统及其动态自均衡调节方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112769884A true CN112769884A (zh) | 2021-05-07 |
Family
ID=75692387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911061733.5A Withdrawn CN112769884A (zh) | 2019-11-01 | 2019-11-01 | 双层反向代理系统及其动态自均衡调节方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112769884A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104618508A (zh) * | 2015-02-26 | 2015-05-13 | 浪潮电子信息产业股份有限公司 | 一种基于Nginx、Memcached、Tomcat负载均衡网状架构 |
CN106570074A (zh) * | 2016-10-14 | 2017-04-19 | 深圳前海微众银行股份有限公司 | 分布式数据库系统及其实现方法 |
CN107872525A (zh) * | 2017-11-09 | 2018-04-03 | 杭州东方通信软件技术有限公司 | 一种微服务调用架构 |
CN109120717A (zh) * | 2018-09-26 | 2019-01-01 | 中国平安人寿保险股份有限公司 | 反向代理方法、装置及存储介质、分布式系统 |
US20190173840A1 (en) * | 2017-12-01 | 2019-06-06 | Kohl's Department Stores, Inc. | Cloud services management system and method |
-
2019
- 2019-11-01 CN CN201911061733.5A patent/CN112769884A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104618508A (zh) * | 2015-02-26 | 2015-05-13 | 浪潮电子信息产业股份有限公司 | 一种基于Nginx、Memcached、Tomcat负载均衡网状架构 |
CN106570074A (zh) * | 2016-10-14 | 2017-04-19 | 深圳前海微众银行股份有限公司 | 分布式数据库系统及其实现方法 |
CN107872525A (zh) * | 2017-11-09 | 2018-04-03 | 杭州东方通信软件技术有限公司 | 一种微服务调用架构 |
US20190173840A1 (en) * | 2017-12-01 | 2019-06-06 | Kohl's Department Stores, Inc. | Cloud services management system and method |
CN109120717A (zh) * | 2018-09-26 | 2019-01-01 | 中国平安人寿保险股份有限公司 | 反向代理方法、装置及存储介质、分布式系统 |
Non-Patent Citations (2)
Title |
---|
CSDN博主EDISON_KWOK_GH: "springCloudZuul 网关", <HTTPS://BLOG.CSDN.NET/GUOHAO_1/ARTICLE/DETAILS/89951223> * |
CSDN博主SONGLY_: "13-keepalived工作原理", <HTTPS://BLOG.CSDN.NET/QQ_35733751/ARTICLE/DETAILS/79834050> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10581960B2 (en) | Performing context-rich attribute-based load balancing on a host | |
US11042639B2 (en) | Excluding stressed machines from load balancing of distributed applications | |
US20200348983A1 (en) | Monitoring and optimizing interhost network traffic | |
EP3201761B1 (en) | Load balancing | |
US8321862B2 (en) | System for migrating a virtual machine and resource usage data to a chosen target host based on a migration policy | |
CN111338773B (zh) | 一种分布式定时任务调度方法、调度系统及服务器集群 | |
JP6198737B2 (ja) | トラフィックディレクタ環境におけるリソースサーバの動的な発見のためのシステムおよび方法ならびに構成 | |
Nakai et al. | Load balancing for internet distributed services using limited redirection rates | |
EP2692095B1 (en) | Method, apparatus and computer program product for updating load balancer configuration data | |
US20220318071A1 (en) | Load balancing method and related device | |
CN112187864B (zh) | 负载均衡方法、装置、存储介质及电子设备 | |
CN108933829A (zh) | 一种负载均衡方法及装置 | |
CN110798412A (zh) | 组播业务处理方法、装置、云平台、设备及可读存储介质 | |
EP4369181A1 (en) | Node for running container group, and management system and method of container group | |
US20110307895A1 (en) | Managing Requests Based on Request Groups | |
CN111124593B (zh) | 信息处理方法及装置、网元及存储介质 | |
CN112243036A (zh) | PaaS服务的数据处理方法及装置、设备、存储介质 | |
CN112769884A (zh) | 双层反向代理系统及其动态自均衡调节方法 | |
WO2023207189A1 (zh) | 负载均衡方法及系统、计算机存储介质、电子设备 | |
CN111522664A (zh) | 基于分布式服务的服务资源管控方法及装置 | |
CN114928615B (zh) | 负载均衡方法、装置、设备及可读存储介质 | |
CN113973092B (zh) | 链路资源调度方法、装置、计算设备及计算机存储介质 | |
JP2022166934A (ja) | 情報処理装置、過負荷制御プログラムおよび過負荷制御方法 | |
US11258718B2 (en) | Context-aware rate limiting | |
CN114675972A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210507 |
|
WW01 | Invention patent application withdrawn after publication |