掌桥专利:专业的专利平台
掌桥专利
首页

负载均衡处理方法、装置、设备及存储介质

文献发布时间:2023-06-19 12:14:58


负载均衡处理方法、装置、设备及存储介质

技术领域

本发明涉及云服务的业务数据分配领域,尤其涉及一种负载均衡处理方法、装置、设备及存储介质。

背景技术

随着编排管理工具k8s云原生的兴起,越来越多的公司加入其阵营。可是在k8s中往往会有应用或集群并非足够契合容器,需要逐渐迁移,应用或集群就会在原有的虚拟机vm方案和新的k8s之间进行切换。

vm和k8s切换问题一般负载均衡设备均可实现,k8s可以基于反向代理负载均衡器ingress实现负载均衡,而原有的vm则基于反向代理网络服务器nginx实现负载均衡。在此种情况下一般公司都采用在nginx负载均衡之后再接入ingress来负责k8s的负载均衡。该解决方案虽然简单,但有由于负载均衡网络链路加长,导致网络性能损耗大。

发明内容

本发明提供了一种负载均衡处理方法、装置、设备及存储介质,用于缩短负载均衡网络链路,并减少网络性能损耗。

为实现上述目的,本发明第一方面提供了一种负载均衡处理方法,包括:接收应用访问请求,通过预设的应用交换机将所述应用访问请求转发至内容交换虚拟机;通过所述内容交换虚拟机从所述应用访问请求中提取收敛域名地址和重定向地址;根据所述收敛域名地址和所述重定向地址对所述内容交换虚拟机对应的策略绑定规则进行匹配分析,得到目标负载转发策略,所述内容交换虚拟机对应的策略绑定规则包括多个负载转发策略和多个模式匹配数据集合,每个负载转发策略和每个模式匹配数据集合一一对应;根据所述目标负载转发策略将所述应用访问请求转发至目标虚拟主机中,通过所述目标虚拟主机将所述应用访问请求转发至目标反向代理中,并通过所述目标反向代理对所述应用访问请求进行负载均衡处理。

可选的,在本发明第一方面的第一种实现方式中,所述接收应用访问请求,通过预设的应用交换机将所述应用访问请求转发至内容交换虚拟机,包括:接收应用访问请求,通过预设的应用交换机拦截所述应用访问请求,并获取终端地址信息;根据所述终端地址信息判断所述应用访问请求是否存在异常;若所述应用访问请求存在异常,则生成并记录请求异常信息,并将所述请求异常信息发送至终端;若所述应用访问请求不存在异常,则通过所述预设的应用交换机按照预设的绑定关系将所述应用访问请求转发至内容交换虚拟机,所述预设的绑定关系用于指示所述内容交换虚拟机与所述预设的应用交换机之间的关联映射。

可选的,在本发明第一方面的第二种实现方式中,所述通过所述内容交换虚拟机从所述应用访问请求中提取收敛域名地址和重定向地址,包括:通过所述内容交换虚拟机,按照预设的构造函数对所述应用访问请求设置统一资源定位对象,并基于所述统一资源定位对象调用域名获取函数,得到收敛域名地址;按照预设的正则匹配规则从所述应用访问请求中提取重定向地址,所述预设的正则匹配规则用于指示对所述应用访问请求进行字符匹配和分割处理。

可选的,在本发明第一方面的第三种实现方式中,所述根据所述收敛域名地址和所述重定向地址对所述内容交换虚拟机对应的策略绑定规则进行匹配分析,得到目标负载转发策略,所述内容交换虚拟机对应的策略绑定规则包括多个负载转发策略和多个模式匹配数据集合,每个负载转发策略和每个模式匹配数据集合一一对应,包括:基于所述收敛域名地址对所述内容交换虚拟机对应的策略绑定规则进行匹配解析,得到与所述收敛域名地址关联绑定的多个负载转发策略和多个模式匹配数据集合,每个负载转发策略具有对应的优先级值和对应的唯一标识,每个负载转发策略和每个模式匹配数据集合一一对应;按照每个负载转发策略对应的优先级值从低到高顺序依次访问每个负载转发策略,并判断每个负载转发策略对应的模式匹配数据集合中是否存在所述重定向地址;若每个负载转发策略对应的模式匹配数据集合中存在所述重定向地址,则确定目标模式匹配数据集合,并根据所述目标模式匹配数据集合确定目标负载转发策略。

可选的,在本发明第一方面的第四种实现方式中,所述根据所述目标负载转发策略将所述应用访问请求转发至目标虚拟主机中,通过所述目标虚拟主机将所述应用访问请求转发至目标反向代理中,并通过所述目标反向代理对所述应用访问请求进行负载均衡处理,包括:获取所述目标负载转发策略对应的策略标识,按照所述策略标识查询预设的配置信息,得到目标虚拟主机,并将所述应用访问请求转发至所述目标虚拟主机中;当所述应用访问请求到达所述目标虚拟主机时,通过所述目标虚拟主机将所述应用访问请求透传至目标反向代理中,所述目标虚拟主机和所述目标反向代理一一对应;当所述应用访问请求到达所述目标反向代理时,通过所述目标反向代理对所述应用访问请求分配并发送至目标主机中,所述目标主机属于预设的分布式集群。

可选的,在本发明第一方面的第五种实现方式中,在所述接收应用访问请求,通过预设的应用交换机将所述应用访问请求转发至内容交换虚拟机之前,所述负载均衡处理方法还包括:获取所述收敛域名地址和服务类型,按照所述收敛域名地址和所述服务类型添加至少一个模式匹配数据集合,并对至少一个模式匹配数据集合进行数据初始化;按照所述收敛域名地址和所述服务类型设置至少一个负载转发策略,并将每个负载转发策略和每个模式匹配数据集合关联绑定;对每个负载转发策略、所述内容交换虚拟机和所述目标虚拟主机进行关联映射处理,并按照预设的优先级分配规则对每个负载转发策略分配对应的优先级值。

可选的,在本发明第一方面的第六种实现方式中,在所述根据所述目标负载转发策略将所述应用访问请求转发至目标虚拟主机中,通过所述目标虚拟主机将所述应用访问请求转发至目标反向代理中,并通过所述目标反向代理对所述应用访问请求进行负载均衡处理之后,所述负载均衡处理方法还包括:获取负载均衡访问日志,按照预设的机器学习算法对所述负载均衡访问日志进行数据挖掘与分析,得到目标访问数据量,所述目标访问数据量用于指示在预设时长内应用访问请求的数量和目标反向代理的分发数量;将所述目标访问数据量发送至终端,以使得所述终端根据所述目标访问数据量生成并展示热力图。

本发明第二方面提供了一种负载均衡处理装置,包括:接收模块,用于接收应用访问请求,通过预设的应用交换机将所述应用访问请求转发至内容交换虚拟机;提取模块,用于通过所述内容交换虚拟机从所述应用访问请求中提取收敛域名地址和重定向地址;分析模块,用于根据所述收敛域名地址和所述重定向地址对所述内容交换虚拟机对应的策略绑定规则进行匹配分析,得到目标负载转发策略,所述内容交换虚拟机对应的策略绑定规则包括多个负载转发策略和多个模式匹配数据集合,每个负载转发策略和每个模式匹配数据集合一一对应;处理模块,用于根据所述目标负载转发策略将所述应用访问请求转发至目标虚拟主机中,通过所述目标虚拟主机将所述应用访问请求转发至目标反向代理中,并通过所述目标反向代理对所述应用访问请求进行负载均衡处理。

可选的,在本发明第二方面的第一种实现方式中,所述接收模块具体用于:接收应用访问请求,通过预设的应用交换机拦截所述应用访问请求,并获取终端地址信息;根据所述终端地址信息判断所述应用访问请求是否存在异常;若所述应用访问请求存在异常,则生成并记录请求异常信息,并将所述请求异常信息发送至终端;若所述应用访问请求不存在异常,则通过所述预设的应用交换机按照预设的绑定关系将所述应用访问请求转发至内容交换虚拟机,所述预设的绑定关系用于指示所述内容交换虚拟机与所述预设的应用交换机之间的关联映射。

可选的,在本发明第二方面的第二种实现方式中,所述提取模块具体用于:通过所述内容交换虚拟机,按照预设的构造函数对所述应用访问请求设置统一资源定位对象,并基于所述统一资源定位对象调用域名获取函数,得到收敛域名地址;按照预设的正则匹配规则从所述应用访问请求中提取重定向地址,所述预设的正则匹配规则用于指示对所述应用访问请求进行字符匹配和分割处理。

可选的,在本发明第二方面的第三种实现方式中,所述分析模块具体用于:基于所述收敛域名地址对所述内容交换虚拟机对应的策略绑定规则进行匹配解析,得到与所述收敛域名地址关联绑定的多个负载转发策略和多个模式匹配数据集合,每个负载转发策略具有对应的优先级值和对应的唯一标识,每个负载转发策略和每个模式匹配数据集合一一对应;按照每个负载转发策略对应的优先级值从低到高顺序依次访问每个负载转发策略,并判断每个负载转发策略对应的模式匹配数据集合中是否存在所述重定向地址;若每个负载转发策略对应的模式匹配数据集合中存在所述重定向地址,则确定目标模式匹配数据集合,并根据所述目标模式匹配数据集合确定目标负载转发策略。

可选的,在本发明第二方面的第四种实现方式中,所述处理模块具体用于:获取所述目标负载转发策略对应的策略标识,按照所述策略标识查询预设的配置信息,得到目标虚拟主机,并将所述应用访问请求转发至所述目标虚拟主机中;当所述应用访问请求到达所述目标虚拟主机时,通过所述目标虚拟主机将所述应用访问请求透传至目标反向代理中,所述目标虚拟主机和所述目标反向代理一一对应;当所述应用访问请求到达所述目标反向代理时,通过所述目标反向代理对所述应用访问请求分配并发送至目标主机中,所述目标主机属于预设的分布式集群。

可选的,在本发明第二方面的第五种实现方式中,所述负载均衡处理装置还包括:初始化模块,用于获取所述收敛域名地址和服务类型,按照所述收敛域名地址和所述服务类型添加至少一个模式匹配数据集合,并对至少一个模式匹配数据集合进行数据初始化;绑定模块,用于按照所述收敛域名地址和所述服务类型设置至少一个负载转发策略,并将每个负载转发策略和每个模式匹配数据集合关联绑定;分配模块,用于对每个负载转发策略、所述内容交换虚拟机和所述目标虚拟主机进行关联映射处理,并按照预设的优先级分配规则对每个负载转发策略分配对应的优先级值。

可选的,在本发明第二方面的第六种实现方式中,所述负载均衡处理装置还包括:挖掘模块,用于获取负载均衡访问日志,按照预设的机器学习算法对所述负载均衡访问日志进行数据挖掘与分析,得到目标访问数据量,所述目标访问数据量用于指示在预设时长内应用访问请求的数量和目标反向代理的分发数量;展示模块,用于将所述目标访问数据量发送至终端,以使得所述终端根据所述目标访问数据量生成并展示热力图。

本发明第三方面提供了一种负载均衡处理设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述负载均衡处理设备执行上述的负载均衡处理方法。

本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的负载均衡处理方法。

本发明提供的技术方案中,接收应用访问请求,通过预设的应用交换机将所述应用访问请求转发至内容交换虚拟机;通过所述内容交换虚拟机从所述应用访问请求中提取收敛域名地址和重定向地址;根据所述收敛域名地址和所述重定向地址对所述内容交换虚拟机对应的策略绑定规则进行匹配分析,得到目标负载转发策略,所述内容交换虚拟机对应的策略绑定规则包括多个负载转发策略和多个模式匹配数据集合,每个负载转发策略和每个模式匹配数据集合一一对应;根据所述目标负载转发策略将所述应用访问请求转发至目标虚拟主机中,通过所述目标虚拟主机将所述应用访问请求转发至目标反向代理中,并通过所述目标反向代理对所述应用访问请求进行负载均衡处理。本发明实施例中,通过预设的应用交换机将转发至内容交换虚拟机;根据收敛域名地址和重定向地址匹配分析内容交换虚拟机对应的策略绑定规则,得到目标负载转发策略;根据目标负载转发策略将应用访问请求转发至目标虚拟主机中,通过目标虚拟主机将应用访问请求转发至目标反向代理中,并通过目标反向代理对应用访问请求进行负载均衡处理。根据业务需求平滑转换应用虚拟化技术,缩短了负载均衡网络链路,并减少网络性能损耗。

附图说明

图1为本发明实施例中负载均衡处理方法的一个实施例示意图;

图2为本发明实施例中负载均衡处理方法的另一个实施例示意图;

图3为本发明实施例中负载均衡处理装置的一个实施例示意图;

图4为本发明实施例中负载均衡处理装置的另一个实施例示意图;

图5为本发明实施例中负载均衡处理设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种负载均衡处理方法、装置、设备及存储介质,用于根据业务需求平滑转换应用虚拟化技术,缩短负载均衡网络链路,并减少网络性能损耗。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中负载均衡处理方法的一个实施例包括:

101、接收应用访问请求,通过预设的应用交换机将应用访问请求转发至内容交换虚拟机。

其中,应用访问请求用于指示一个或多个终端发送的业务操作统一资源定位符,例如,应用访问请求可用于请求在线医疗业务、医药电商业务,还可用于请求健康教育业务,具体此处不做限定。预设的应用交换机用于拦截和验证应用访问请求,预设的应用交换机可以为硬件负载均衡交换机netscaler,还可以为其他负载均衡交换机,具体此处不做限定。内容交换虚拟机用于对应用访问请求进行负载均衡处理。具体的,服务器接收应用访问请求,并获取终端地址信息;服务器判断预设的网络协议地址信息表是否存在终端地址信息;若预设的网络协议地址信息表存在终端地址信息,则服务器通过预设的应用交换机将转发至内容交换虚拟机,内容交换虚拟机用于指示对应用访问请求进行域名解析和负载均衡处理。例如,当终端发送的应用访问请求为http://srv.pajk-ent.com/timeline时,并且http://srv.pajk-ent.com/timeline到达服务器中的硬件负载均衡交换机(也就是,预设的应用交换机)netscaler时,服务器通过netscaler对应用访问请求进行验证和/或转发处理。

可以理解的是,本发明的执行主体可以为负载均衡处理装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。

102、通过内容交换虚拟机从应用访问请求中提取收敛域名地址和重定向地址。

其中,应用方问请求可以为获取get请求方式,也可以为发送post请求方式,具体此处不做限定。应用访问请求包括收敛域名地址、重定向地址和参数信息。例如,当应用访问请求为get请求方式时,应用访问请求为http://srv.pajk-ent.com/timeline/id=xx,当应用访问请求为post请求方式时,应用访问请求为http://srv.pajk-ent.com/timeline。具体的,服务器通过预设的全路径获取函数获取应用访问请求,其中,预设的全路径获取函数可以为request.getRequestURL();接着,服务器通过内容交换虚拟机(例如cs_1b),按照超文本传输协议协议对应用访问请求进行解析,得到收敛域名地址和重定向地址,其中,收敛域名地址为srv.pajk-ent.com,重定向地址为timeline,用于实现流量分发。

103、根据收敛域名地址和重定向地址对内容交换虚拟机对应的策略绑定规则进行匹配分析,得到目标负载转发策略,内容交换虚拟机对应的策略绑定规则包括多个负载转发策略和多个模式匹配数据集合,每个负载转发策略和每个模式匹配数据集合一一对应。

其中,内容交换虚拟机用于实现七层的负载均衡。具体的,服务器根据收敛域名地址按照预设的策略生成规则和预设的模式生成规则设置多个策略标识和多个模式标识,服务器根据多个策略标识和多个模式标识对内容交换虚拟机对应的策略绑定规则进行匹配分析,得到多个负载转发策略和多个模式匹配数据集合,每个负载转发策略location和每个模式匹配数据集合patset一一对应,例如,服务器对某个域名需要访问虚拟机服务类型vm的location建立一个vm patset,并对需要访问到容器服务类型k8s的location建立一个k8s patset;服务器按照每个负载转发策略对应的优先级从低到高顺序遍历访问每个负载转发策略,当每个负载转发策略对应的模式匹配数据集合中包含重定向地址时,服务器确定该模式匹配数据集合对应的负载转发策略为目标策略(也就是,目标负载转发策略),得到目标策略标识,其中,目标策略标识可以为每个负载转发策略的名称。进一步地,服务器将策略绑定规则存储于区块链数据库中,具体此处不做限定。

104、根据目标负载转发策略将应用访问请求转发至目标虚拟主机中,通过目标虚拟主机将应用访问请求转发至目标反向代理中,并通过目标反向代理对应用访问请求进行负载均衡处理。

其中,目标虚拟主机属于netscaler,目标虚拟主机包括虚拟机服务类型vm的虚拟主机,和容器服务类型k8s(也就是,kubernetes)的虚拟主机,目标虚拟主机可以用于服务各运营商。具体的,服务器根据目标负载转发策略policy和目标模式匹配数据集合patset对应用访问请求进行负载转发处理(也就是,服务器从多个虚拟主机中确定目标虚拟主机),当目标虚拟主机接收到应用访问请求时,服务器通过目标虚拟主机将应用访问请求转发至目标反向代理(例如,ingress或者nginx)中,目标虚拟主机和目标反向代理一一对应,例如,vm类型的目标虚拟主机对应的目标反向代理为vm/nginx,k8s类型的目标虚拟主机对应的目标反向代理为k8s/ingress;接着,服务器通过目标反向代理对应用访问请求进行负载均衡处理。

本发明实施例中,通过预设的应用交换机将转发至内容交换虚拟机;根据收敛域名地址和重定向地址匹配分析内容交换虚拟机对应的策略绑定规则,得到目标负载转发策略;根据目标负载转发策略将应用访问请求转发至目标虚拟主机中,通过目标虚拟主机将应用访问请求转发至目标反向代理中,并通过目标反向代理对应用访问请求进行负载均衡处理。根据业务需求平滑转换应用虚拟化技术,缩短了负载均衡网络链路,并减少网络性能损耗。本方案可应用于智慧医疗领域中,从而推动智慧城市的建设。

请参阅图2,本发明实施例中负载均衡处理方法的另一个实施例包括:

201、获取收敛域名地址和服务类型,按照收敛域名地址和服务类型添加至少一个模式匹配数据集合,并对至少一个模式匹配数据集合进行数据初始化。

具体的,服务器根据收敛域名地址和服务类型设置至少一个模式匹配数据集合模式匹配数据集合patset对应的集合名称,集合名称用于指示将前缀、收敛域名地址和后缀的方式按照“_”拼接组合而成。其中,前缀可以为p,也可以为policy,具体此处不做限定,后缀为服务类型。可选的,一个收敛域名地址可以对应两个patset数据集合,例如,服务器执行add policy patset p_testk8s_dev_pajkdc_com_vm,用于创建一个名称为testk8s_dev_pajkdc_com_vm的第一模式匹配数据集合,该第一模式匹配数据集合用于存储该域名下需要转发到vm/nginx的域名location;或者服务器执行add policy patset p_testk8s_dev_pajkdc_com_k8s,用于创建名称为testk8s_dev_pajkdc_com_k8s的第二模式匹配数据集合,该第二模式匹配数据集合用于存储该域名下需要转发到k8s/ingress的域名location。然后,服务器对至少一个模式匹配数据集合(例如,patset数据集合)初始化,也就是服务器对patset数据集合分配对应的重定向地址(重定向地址为字符串数据)。当应用程序存在增删改操作,或者vm和k8s迁移时,服务器维护这两个patset数据集合就可以了。

202、按照收敛域名地址和服务类型设置至少一个负载转发策略,并将每个负载转发策略和每个模式匹配数据集合关联绑定。

具体的,服务器根据收敛域名地址和服务类型设置每个负载转发策略policy对应的策略名称,策略名称用于指示将前缀、收敛域名地址和后缀的方式按照“_”拼接组合而成;然后,服务器按照每个负载转发策略对应的策略名称设置至少一个负载转发策略,并将每个负载转发策略和每个模式匹配数据集合关联绑定。其中,前缀可以为空值,也可以为其他值,具体此处不做限定,后缀为服务类型。一个收敛域名地址可以设置三个负载转发策略:

add cs policy srv_pajk-ent_com_VM-rule

"HTTP.REQ.HOSTNAME.EQ(\"srv.pajk-ent.com\")&&

HTTP.REQ.URL.PATH.GET(1).set_text_mode(IGNORECASE).EQUALS_ANY(\"p_srv_pajk-ent_com_VM\");

该指令用于创建第一负载转发策略srv_pajk-ent_com_VM,该第一负载转发策略只处理p_srv_pajk-ent_com_VM域名,并且该域名第一个location属于签名创建的vmpatset数据集合(也就是,p_srv_pajk-ent_com_VM)。

add cs policy srv_pajk-ent_com_k8s-rule

"HTTP.REQ.HOSTNAME.EQ(\"srv.pajk-ent.com\")&&

HTTP.REQ.URL.PATH.GET(1).set_text_mode(IGNORECASE).EQUALS_ANY(\"p_srv_pajk-ent_com_k8s\");

该指令用于创建第二负载转发策略srv_pajk-ent_com_k8s,该第二负载转发策略只处理srv_pajk-ent_com_k8s域名,并且该域名第一个location属于签名建立的k8spatset数据集合(也就是,p_srv_pajk-ent_com_k8s)。

add cs policy srv_pajk-ent_com_Default-rule

"HTTP.REQ.HOSTNAME.EQ(\"srv.pajk-ent.com\")&&

HTTP.REQ.URL.STARTSWITH(\"/\")";

该指令用于创建第三负载转发策略srv_pajk-ent_com_Default,该第三负载转发策略用于处理srv.pajk-ent.com收敛域名地址,并且该收敛域名地址以根(“/”)开始,该负载转发策略用于处理该域名下的所有流量,以实现完全包括收敛域名地址的所有转发。

203、对每个负载转发策略、内容交换虚拟机和目标虚拟主机进行关联映射处理,并按照预设的优先级分配规则对每个负载转发策略分配对应的优先级值。

其中,每个收敛域名地址对应的负载转发策略的数量均可为多个,服务器对每个负载转发策略设置优先级,以实现通过绑定每个负载转发策略时指定的优先级执行策略匹配顺序。例如,服务器将vm设置为最先匹配,k8s次之匹配,最后匹配default。具体绑定过程如下所示:

bind cs vserver cs_lb–policyName srv_pajk-ent_com_vm-targetLBVservervm_lb-priority 1;

服务器执行该指令将第一负载转发策略srv_pajk-ent_com_vm绑定到内容交换虚拟机cs_lb,服务器将到达cs_lb的流量转到目标虚拟主机vm_lb,并赋予最高优先级值1。

bind cs vserver cs_lb-policyName srv_pajk-ent_com_k8s-targetLBVserverk8s_lb-priority 2;

服务器执行该指令将第二负载转发策略srv_pajk-ent_com_k8s绑定到内容交换虚拟机cs_lb,服务器将到达cs_lb的流量转到目标虚拟主机k8s_lb,并赋予次高优先级值2。

bind cs vserver cs_lb-policyName testk8s_dev_pajkdc_com_default-targetLBVserver vm_lb-priority 3;

服务器执行该指令将第三负载转发策略testk8s_dev_pajkdc_com_default绑定到内容交换虚拟机cs_lb,服务器将到达cs_lb的流量转到目标虚拟主机vm_lb,并赋予最低优先级值3。

需要说明的是,cs_lb可以为某个运营商对应的内容交换虚拟机,用于将三组虚拟主机抽象成一个组合。当流量到达cs_lb时,服务器通过cs_lb按照预设的运算规则进行逻辑运算,预设的运算规则就是先匹配优先级低的负载转发策略,匹配成功时,服务器将应用访问请求转到匹配的负载转发策略targetLBVserver上。服务器将patset数据集合绑定到对应的负载转发策略上,以使得使patset数据集合(也就是模式匹配数据集合)生效。服务器通过建立三个模式匹配数据集合和三个负载转发策略,也就是,一个vm集合和vm策略,一个k8s集合和k8s策略,一个默认集合,本实施例中默认集合就一个字符串“/”采用一个默认策略),并将三个模式匹配数据集合和三个负载转发策略分别一一相关联,最终,服务器将一一关联的负载转发策略和模式匹配数据集合分别绑定到同一个内容交换虚拟机上。

204、接收应用访问请求,通过预设的应用交换机将应用访问请求转发至内容交换虚拟机。

进一步地,服务器通过请求头字段XFF(也就是,X-Forwarded-For)识别与终端的连接方式为超文本传输协议代理方式或负载均衡方式;若与终端的连接方式为超文本传输协议代理方式,则服务器调用预设的地址获取函数request.getRemoteAddr(),得到终端地址信息;若与终端的连接方式为负载均衡方式,则服务器透过防火墙获取请求头字段,并从请求头字段中提取终端地址信息。可选的,服务器接收应用访问请求,通过预设的应用交换机拦截应用访问请求,并获取终端地址信息;服务器根据终端地址信息判断应用访问请求是否存在异常,具体的,服务器判断终端地址信息是否存在于预设的网络协议地址信息表中,若终端地址信息不存在于预设的网络协议地址信息表中,则服务器确定应用访问请求存在异常,若终端地址信息存在于预设的网络协议地址信息表中,则服务器确定应用访问请求正常;若应用访问请求存在异常,则服务器生成并记录请求异常信息,并将请求异常信息发送至终端,进一步地,终端显示请求异常信息,并提示目标用户终端的访问权限受限;若应用访问请求不存在异常,则服务器通过预设的应用交换机按照预设的绑定关系将应用访问请求转发至内容交换虚拟机,预设的绑定关系用于指示内容交换虚拟机与预设的应用交换机之间的关联映射。

205、通过内容交换虚拟机从应用访问请求中提取收敛域名地址和重定向地址。

进一步地,服务器还可以通过预设的主机名获取函数getRemoteHost()获取收敛域名地址。然后服务器获取收敛域名地址对应的待校验规则;服务器根据待校验规则校验收敛域名地址;若收敛域名地址未通过检验,则服务器生成并记录校验失败信息。可选的,服务器通过内容交换虚拟机,按照预设的构造函数对应用访问请求设置统一资源定位对象,并基于统一资源定位对象调用域名获取函数,得到收敛域名地址;服务器按照预设的正则匹配规则从应用访问请求中提取重定向地址,预设的正则匹配规则用于指示对应用访问请求进行字符匹配和分割处理。

例如,应用访问请求A为http://srv.pajk-ent.com/timeline,应用访问请求B为http://srv.pajk-ent.com/timeline/hellowrod.html,应用访问请求C为http://srv.pajk-ent.com/timeline/hellowrod.html?param=1,服务器按照预设的正则匹配规则分别对应用访问请求A、应用访问请求B和应用访问请求C进行字符匹配和分割处理,得到重定向地址均为timeline。进一步地,服务器还可以对收敛域名地址和重定向地址进行字符大小写统一处理。

206、根据收敛域名地址和重定向地址对内容交换虚拟机对应的策略绑定规则进行匹配分析,得到目标负载转发策略,内容交换虚拟机对应的策略绑定规则包括多个负载转发策略和多个模式匹配数据集合,每个负载转发策略和每个模式匹配数据集合一一对应。

也就是,服务器优先选取低优先级的负载转发策略进行策略匹配,进一步地,服务器也可以按照每个负载转发策略对应的优先级值从低到高顺序依次访问每个域名策略。每个负载转发策略policy对应的模式匹配数据集合patset是一个字符串数据集合,可以用于存储任意不重复字符串,主要用于存储收敛域名地址的重定向地址location,location为统一资源定位符url中下斜线/字符分割的第一个字符串,一个收敛域名地址对应多个应用程序,在本实施例中通常对应于一个具体的应用名称,该模式匹配数据集合patset是通过对应的负载转发策略与收敛域名地址绑定的。例如,当终端访问形式为srv.pajk-ent.com/cc时,服务器匹配patset中cc的字符串。

可选的,服务器基于收敛域名地址对内容交换虚拟机对应的策略绑定规则进行匹配解析,得到与收敛域名地址关联绑定的多个负载转发策略和多个模式匹配数据集合,每个负载转发策略具有对应的优先级值和对应的唯一标识,每个负载转发策略和每个模式匹配数据集合一一对应;服务器按照每个负载转发策略对应的优先级值从低到高顺序依次访问每个负载转发策略,并判断每个负载转发策略对应的模式匹配数据集合中是否存在重定向地址;若每个负载转发策略对应的模式匹配数据集合中存在重定向地址,则服务器确定目标模式匹配数据集合,并根据目标模式匹配数据集合确定目标负载转发策略。

需要说明的是,内容交换虚拟机可以绑定多个负载转发策略,而每个负载转发策略的执行顺序是通过预先设定的优先级顺序执行的,服务器根据优先级值逐个匹配每个负载转发策略,当服务器通过收敛域名地址和重定向地址匹配到目标策略时,服务器确定目标策略标识,停止匹配,并根据目标策略标识执行步骤207。当服务器通过收敛域名地址和重定向地址未匹配到目标策略时,服务器确定停止匹配,服务器生成提示信息,服务器将提示信息发送至终端,提示信息用于指示应用访问请求未匹配到业务服务器。目标模式匹配数据集合和目标模式匹配数据集合分别与收敛域名进行绑定,从而实现了基于域名级别的负载均衡。

207、根据目标负载转发策略将应用访问请求转发至目标虚拟主机中,通过目标虚拟主机将应用访问请求转发至目标反向代理中,并通过目标反向代理对应用访问请求进行负载均衡处理。

进一步地,服务器通过目标反向代理将应用访问请求转发给至少一个预设的分布式集群对应的目标主机中,并将目标主机的响应结果返回至应用访问请求连接的终端。例如,针对应用访问请求http://Srv.pajk-ent.com/timeline,服务器将应用访问请求转发至到k8s的运行实例pod上;服务器将应用请求http://Srv.pajk-ent.com/cc和http://Srv.pajk-ent.com转发至vm的机器实例上。

可选的,服务器获取目标负载转发策略对应的策略标识,按照策略标识查询预设的配置信息,得到目标虚拟主机,并将应用访问请求转发至目标虚拟主机中;当应用访问请求到达目标虚拟主机时,服务器通过目标虚拟主机将应用访问请求透传至目标反向代理中,目标虚拟主机和目标反向代理一一对应;当应用访问请求到达目标反向代理时,服务器通过目标反向代理对应用访问请求分配并发送至目标主机中,目标主机属于预设的分布式集群。

进一步地,服务器获取负载均衡访问日志,按照预设的机器学习算法对负载均衡访问日志进行数据挖掘与分析,得到目标访问数据量,目标访问数据量用于指示在预设时长内应用访问请求的数量和目标反向代理的分发数量;服务器将目标访问数据量发送至终端,以使得终端根据目标访问数据量生成并展示热力图。其中,预设的机器学习算法可以包括决策树算法、贝叶斯分类算法,还可以包括其他机器学习算法,具体此处不做限定。

本发明实施例中,通过预设的应用交换机将转发至内容交换虚拟机;根据收敛域名地址和重定向地址匹配分析内容交换虚拟机对应的策略绑定规则,得到目标负载转发策略;根据目标负载转发策略将应用访问请求转发至目标虚拟主机中,通过目标虚拟主机将应用访问请求转发至目标反向代理中,并通过目标反向代理对应用访问请求进行负载均衡处理。根据业务需求平滑转换应用虚拟化技术,缩短了负载均衡网络链路,并减少网络性能损耗。本方案可应用于智慧医疗领域中,从而推动智慧城市的建设。

上面对本发明实施例中负载均衡处理方法进行了描述,下面对本发明实施例中负载均衡处理装置进行描述,请参阅图3,本发明实施例中负载均衡处理装置的一个实施例包括:

接收模块301,用于接收应用访问请求,通过预设的应用交换机将应用访问请求转发至内容交换虚拟机;

提取模块302,用于通过内容交换虚拟机从应用访问请求中提取收敛域名地址和重定向地址;

分析模块303,用于根据收敛域名地址和重定向地址对内容交换虚拟机对应的策略绑定规则进行匹配分析,得到目标负载转发策略,内容交换虚拟机对应的策略绑定规则包括多个负载转发策略和多个模式匹配数据集合,每个负载转发策略和每个模式匹配数据集合一一对应;

处理模块304,用于根据目标负载转发策略将应用访问请求转发至目标虚拟主机中,通过目标虚拟主机将应用访问请求转发至目标反向代理中,并通过目标反向代理对应用访问请求进行负载均衡处理。

进一步地,将策略绑定规则存储于区块链数据库中,具体此处不做限定。

本发明实施例中,通过预设的应用交换机将转发至内容交换虚拟机;根据收敛域名地址和重定向地址匹配分析内容交换虚拟机对应的策略绑定规则,得到目标负载转发策略;根据目标负载转发策略将应用访问请求转发至目标虚拟主机中,通过目标虚拟主机将应用访问请求转发至目标反向代理中,并通过目标反向代理对应用访问请求进行负载均衡处理。根据业务需求平滑转换应用虚拟化技术,缩短了负载均衡网络链路,并减少网络性能损耗。

请参阅图4,本发明实施例中负载均衡处理装置的另一个实施例包括:

接收模块301,用于接收应用访问请求,通过预设的应用交换机将应用访问请求转发至内容交换虚拟机;

提取模块302,用于通过内容交换虚拟机从应用访问请求中提取收敛域名地址和重定向地址;

分析模块303,用于根据收敛域名地址和重定向地址对内容交换虚拟机对应的策略绑定规则进行匹配分析,得到目标负载转发策略,内容交换虚拟机对应的策略绑定规则包括多个负载转发策略和多个模式匹配数据集合,每个负载转发策略和每个模式匹配数据集合一一对应;

处理模块304,用于根据目标负载转发策略将应用访问请求转发至目标虚拟主机中,通过目标虚拟主机将应用访问请求转发至目标反向代理中,并通过目标反向代理对应用访问请求进行负载均衡处理。

可选的,接收模块301还可以具体用于:

接收应用访问请求,通过预设的应用交换机拦截应用访问请求,并获取终端地址信息;

根据终端地址信息判断应用访问请求是否存在异常;

若应用访问请求存在异常,则生成并记录请求异常信息,并将请求异常信息发送至终端;

若应用访问请求不存在异常,则通过预设的应用交换机按照预设的绑定关系将应用访问请求转发至内容交换虚拟机,预设的绑定关系用于指示内容交换虚拟机与预设的应用交换机之间的关联映射。

可选的,提取模块302还可以具体用于:

通过内容交换虚拟机,按照预设的构造函数对应用访问请求设置统一资源定位对象,并基于统一资源定位对象调用域名获取函数,得到收敛域名地址;

按照预设的正则匹配规则从应用访问请求中提取重定向地址,预设的正则匹配规则用于指示对应用访问请求进行字符匹配和分割处理。

可选的,分析模块303还可以具体用于:

基于收敛域名地址对内容交换虚拟机对应的策略绑定规则进行匹配解析,得到与收敛域名地址关联绑定的多个负载转发策略和多个模式匹配数据集合,每个负载转发策略具有对应的优先级值和对应的唯一标识,每个负载转发策略和每个模式匹配数据集合一一对应;

按照每个负载转发策略对应的优先级值从低到高顺序依次访问每个负载转发策略,并判断每个负载转发策略对应的模式匹配数据集合中是否存在重定向地址;

若每个负载转发策略对应的模式匹配数据集合中存在重定向地址,则确定目标模式匹配数据集合,并根据目标模式匹配数据集合确定目标负载转发策略。

可选的,处理模块304还可以具体用于:

获取目标负载转发策略对应的策略标识,按照策略标识查询预设的配置信息,得到目标虚拟主机,并将应用访问请求转发至目标虚拟主机中;

当应用访问请求到达目标虚拟主机时,通过目标虚拟主机将应用访问请求透传至目标反向代理中,目标虚拟主机和目标反向代理一一对应;

当应用访问请求到达目标反向代理时,通过目标反向代理对应用访问请求分配并发送至目标主机中,目标主机属于预设的分布式集群。

可选的,负载均衡处理装置还包括:

初始化模块305,用于获取收敛域名地址和服务类型,按照收敛域名地址和服务类型添加至少一个模式匹配数据集合,并对至少一个模式匹配数据集合进行数据初始化;

绑定模块306,用于按照收敛域名地址和服务类型设置至少一个负载转发策略,并将每个负载转发策略和每个模式匹配数据集合关联绑定;

分配模块307,用于对每个负载转发策略、内容交换虚拟机和目标虚拟主机进行关联映射处理,并按照预设的优先级分配规则对每个负载转发策略分配对应的优先级值。

可选的,负载均衡处理装置还包括:

挖掘模块308,用于获取负载均衡访问日志,按照预设的机器学习算法对负载均衡访问日志进行数据挖掘与分析,得到目标访问数据量,目标访问数据量用于指示在预设时长内应用访问请求的数量和目标反向代理的分发数量;

展示模块309,用于将目标访问数据量发送至终端,以使得终端根据目标访问数据量生成并展示热力图。

本发明实施例中,通过预设的应用交换机将转发至内容交换虚拟机;根据收敛域名地址和重定向地址匹配分析内容交换虚拟机对应的策略绑定规则,得到目标负载转发策略;根据目标负载转发策略将应用访问请求转发至目标虚拟主机中,通过目标虚拟主机将应用访问请求转发至目标反向代理中,并通过目标反向代理对应用访问请求进行负载均衡处理。根据业务需求平滑转换应用虚拟化技术,缩短了负载均衡网络链路,并减少网络性能损耗。

上面图3和图4从模块化的角度对本发明实施例中的负载均衡处理装置进行详细描述,下面从硬件处理的角度对本发明实施例中负载均衡处理设备进行详细描述。

图5是本发明实施例提供的一种负载均衡处理设备的结构示意图,该负载均衡处理设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对负载均衡处理设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在负载均衡处理设备500上执行存储介质530中的一系列指令操作。

负载均衡处理设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的负载均衡处理设备结构并不构成对负载均衡处理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述负载均衡处理方法的步骤。

本发明还提供一种负载均衡处理设备,所述负载均衡处理设备包括存储器和处理器,存储器中存储有指令,所述指令被处理器执行时,使得处理器执行上述各实施例中的所述负载均衡处理方法的步骤。

进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。

本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 负载均衡处理方法、装置、设备及存储介质
  • 流量负载均衡的处理方法、装置、电子设备及存储介质
技术分类

06120113226046