CN117812002A - 集群流量管理方法、装置、设备及存储介质 - Google Patents
集群流量管理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117812002A CN117812002A CN202410023995.7A CN202410023995A CN117812002A CN 117812002 A CN117812002 A CN 117812002A CN 202410023995 A CN202410023995 A CN 202410023995A CN 117812002 A CN117812002 A CN 117812002A
- Authority
- CN
- China
- Prior art keywords
- domain name
- cluster
- target
- user
- equipment
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 75
- 238000003860 storage Methods 0.000 title claims abstract description 27
- 238000000034 method Methods 0.000 claims abstract description 47
- 230000002441 reversible effect Effects 0.000 claims description 75
- 238000012795 verification Methods 0.000 claims description 27
- 239000012634 fragment Substances 0.000 claims description 18
- 230000014509 gene expression Effects 0.000 claims description 13
- 238000012360 testing method Methods 0.000 claims description 13
- 238000013467 fragmentation Methods 0.000 claims description 10
- 238000006062 fragmentation reaction Methods 0.000 claims description 10
- 238000012216 screening Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 13
- 230000008859 change Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 230000002085 persistent effect Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 230000002159 abnormal effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000013508 migration Methods 0.000 description 6
- 230000005012 migration Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000002955 isolation Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 238000012550 audit Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000012508 change request Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- RZVAJINKPMORJF-UHFFFAOYSA-N Acetaminophen Chemical compound CC(=O)NC1=CC=C(O)C=C1 RZVAJINKPMORJF-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009960 carding Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004138 cluster model Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/80—Ingress point selection by the source endpoint, e.g. selection of ISP or POP
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种集群流量管理方法、装置、设备及存储介质,属于网络管理技术领域。本申请通过在接收到用户的请求数据后,获取以域名为唯一键的分布式锁,并根据所述分布式锁,选择与对应域名匹配的目标设备和目标流量入口,并根据所述目标设备和所述目标流量入口,生成域名发布结果,从而可将所述域名发布结果发送至所述用户,以供所述用户根据所述域名发布结果访问相应设备和地址,即通过请求数据确定唯一键的分布式锁,依据负载性能、部署地域、集群信息、定制化需求四个维度匹配出与该域名对应的目标设备和目标流量入口,因而可实现保证用户的访问流量能够被准确接入调度到对应的集群服务上。
Description
技术领域
本申请涉及网络管理技术领域,尤其涉及一种集群流量管理方法、装置、设备及存储介质。
背景技术
当前容器平台用户普遍面临着流量从用户到达服务的接入问题,一方面需要用户理解很多网络基础知识、了解平台动态变化的复杂网络拓扑信息,使用门槛较高;另一方面,传统流量接入方案多数采用人工提单加管理员审批的方式,存在沟通成本高,处理效率低等问题,还极容易引入人为错误造成流量调度的错误。
除此之外,传统流量接入也面临着网络故障、负载不均衡等诸多挑战,需要从可用性、性能、效率等多个关键维度出发,解决容器环境下服务流量的统一接入问题。容器集群的频繁升级、下线以及容器服务的频繁销毁、重建都给容器集群的流量调度提出了新的挑战,特别是在现今主流的多集群高可用架构下,如何保证用户的访问流量能够被准确接入调度到对应的集群服务上是业界面临的一个共性问题。
发明内容
本申请的主要目的在于提供一种集群流量管理方法、装置、设备及存储介质,旨在解决无法保证用户的访问流量能够被准确接入调度到对应的集群服务上的技术问题。
为实现上述目的,本申请提供一种集群流量管理方法,所述集群流量管理方法包括以下步骤:
在接收到用户的请求数据后,获取以域名为唯一键的分布式锁;
根据所述分布式锁,选择与对应域名匹配的目标设备和目标流量入口,并根据所述目标设备和所述目标流量入口,生成域名发布结果;
将所述域名发布结果发送至所述用户,以供所述用户根据所述域名发布结果访问相应设备和地址。
可选地,所述根据所述分布式锁,选择与对应域名匹配的目标设备和目标流量入口,并根据所述目标设备和所述目标流量入口,生成域名发布结果的步骤,包括:
根据预设匹配规则和所述分布式锁,选择与对应域名的目标设备和目标流量入口,其中,所述目标设备包括反向代理设备和DNS设备;
根据预设分片模型,确定所述目标流量入口对应的IP,并根据所述IP,生成所述DNS设备的转发规则;
获取所述用户的流量转发需求,并根据所述流量转发需求,生成所述反向代理设备的反向代理规则;
根据所述转发规则和所述反向代理规则,生成域名发布结果。
可选地,所述根据预设匹配规则和所述分布式锁,选择与对应域名的目标设备和目标流量入口的步骤,包括:
根据预设匹配规则,解析所述分布式锁对应域名的Path;
根据预设匹配条件和所述域名对应的Path,选择满足相应业务需求的DNS设备,并选择满足与所述DNS设备匹配的反向代理设备,其中,在选择所述反向代理设备时,将以往发布的反向代理设备作为当前域名发布所需的反向代理设备;
其中,所述域名支持对应多个Path,所述域名的不同Path与不同的反向代理设备绑定,所述域名的不同Path与不同集群的目标流量入口绑定。
可选地,所述根据预设匹配规则和所述分布式锁,选择与对应域名的目标设备和目标流量入口的步骤,所述方法还包括:
在集群生命周期变更时,获取集群的实时基础信息;
根据所述实时基础信息,生成用于管理所述集群中各项基础信息的集群管理平台,以便在选择目标流量入口时,通过所述集群管理平台,对所述集群的相应数据信息进行一致性校验,其中,若一致性校验不符合校验需求,则应用所述集群管理平台中的信息。
可选地,所述根据预设分片模型,确定所述目标流量入口对应的IP的步骤,包括:
确定所述预设分片模型中各流量入口分片的性能数据和负载现状;
根据所述性能数据和所述负载现状,筛选出与所述请求数据对应的目标流量入口;
根据所述目标流量入口对应的预先绑定的多个用途IP,确定与所述请求数据对应的IP。
可选地,所述在接收到用户的请求数据后,获取以域名为唯一键的分布式锁的步骤,包括:
在接收到用户的请求数据后,对所述请求数据对应的域名进行解析,其中,解析所述请求数据时,会根据所述请求数据中对应的请求条件,生成与所述域名对应的条件表达式;
根据所述条件表达式,获取以所述域名为唯一键的分布式锁。
可选的,所述将所述域名发布结果发送至所述用户,以供所述用户根据所述域名发布结果访问相应设备和地址的步骤之后,所述方法还包括:
将满足预设上层业务的预设比例流量转发至集群的新上线的业务服务,以对所述业务服务进行验证测试的要求;
在所述业务服务通过验证测试后,获取用户的流量属性需求,并根据所述流量属性需求,更新相应流量相关规。
此外,为实现上述目的,本申请还提供一种集群流量管理装置,所述集群流量管理装置包括:
获取模块,用于在接收到用户的请求数据后,获取以域名为唯一键的分布式锁;
生成模块,用于根据所述分布式锁,选择与对应域名匹配的目标设备和目标流量入口,并根据所述目标设备和所述目标流量入口,生成域名发布结果;
发送模块,用于将所述域名发布结果发送至所述用户,以供所述用户根据所述域名发布结果访问相应设备和地址。
此外,为实现上述目的,本申请还提供一种集群流量管理设备,所述集群流量管理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的集群流量管理程序,所述集群流量管理程序配置为实现如上所述的集群流量管理方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有集群流量管理程序,所述集群流量管理程序被处理器执行时实现如上所述的集群流量管理方法的步骤。
本申请通过在接收到用户的请求数据后,获取以域名为唯一键的分布式锁,并根据所述分布式锁,选择与对应域名匹配的目标设备和目标流量入口,并根据所述目标设备和所述目标流量入口,生成域名发布结果,从而可将所述域名发布结果发送至所述用户,以供所述用户根据所述域名发布结果访问相应设备和地址,即通过请求数据确定唯一键的分布式锁,选择对应的目标设备和目标流量入口,因而可实现保证用户的访问流量能够被准确接入调度到对应的集群服务上。
附图说明
图1为本申请集群流量管理方法第一实施例的流程示意图;
图2本申请实施例中集群联邦架构的架构示意图;
图3本申请实施例中集群多流量入口的架构示意图;
图4本申请实施例中多Path的流量调度的实例示意图;
图5本申请实施例中集群流量管理架构的架构示意图;
图6为本申请集群流量管理方法第二实施例中步骤S20的细化流程示意图;
图7为本申请实施例中条件表达式的实例示意图;
图8为本申请集群流量管理装置一实施例的结构框图;
图9是本申请实施例方案涉及的硬件运行环境的设备结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,图1为本申请集群流量管理方法第一实施例的流程示意图。
在第一实施例中,所述集群流量管理方法包括以下步骤:
S10,在接收到用户的请求数据后,获取以域名为唯一键的分布式锁。
S20,根据所述分布式锁,选择与对应域名匹配的目标设备和目标流量入口,并根据所述目标设备和所述目标流量入口,生成域名发布结果。
S30,将所述域名发布结果发送至所述用户,以供所述用户根据所述域名发布结果访问相应设备和地址。
需要说明的是,在本实施例中所涉及的各技术名词的解释如下:
集群联邦(Federation)提供了在多个集群中保持资源同步的跨集群同步资源能力和在所有集群后端上进行负载均衡的跨集群服务发现能力。此外,Federation还具有包括高可用、故障隔离、低延迟及避免厂商锁定等多种部署优势。在我们的流量管理方案中,集群管理也采用Federation的方式,会将多个集群绑定为一个联邦对象。当一个业务服务部署到一个联邦时,通过Federation的跨集群同步能力将业务实际部署到联邦对象下的每个集群,具体架构可参照图2。
在本实施例中设置可用区(Availability Zone)和区域(Region),其中,区域一般指物理的数据中心,每个区域完全独立,可以实现最大程度的容错能力和稳定性。可用区是指在同一区域内,电力和网络互相隔离的物理区域,一个可用区不受其他可用区故障的影响。一般来说,一个区域内可以由多个可用区,不同可用区之间物理隔离,但内网互通,既保障了可用区的独立性,又提供了低价、低时延的网络连接。在流量管理方案中,上层业务服务部署也引入可用区和区域的概率。服务默认会部署到不同的可用区,以保障服务的高可用。而对于核心服务,除了采用多可用区部署的方式之外,还会部署到不同区域,以应对各种故障情况的发生,在保障服务高可用的同时提高用户的使用体验。
在本实施例中设置集群多流量入口在k8s的模型定义中,每个集群都需要引入Ingress对象来公开从集群外部到集群内部服务的HTTP和HTTPS路由,为集群内的Service提供外部可访问的URL,负载均衡流量等等基础能力。在本实施例中也使用k8s的Ingress对象作为集群流量的入口。在本实施例中只负责管理调度服务用户流量到集群入口Ingress的链路。与基本的Ingress概念不同之处在于本流量方案中的所有集群的都具有多个Ingress流量入口且支持流量入口的横向扩展。多流量入口的集群模型有两个明显的好处:1、缩小集群故障域,避免流量入口分片出现单点故障问题2、提高流量转发的效率,避免流量入口成为性能瓶颈,特别是在大流量的业务场景,具体可参照图3。
在本实施例中,支持设置单域名多Path的流量管理方案,其与普通的单域名单服务的HTTP流量方案不同。本实施例中允许在相同域名上,使用不同的Path将流量调度转发到不同的后端服务。一方面可以大量减少域名的数量,避免过多的域名给底层设备造成影响;另一方面也可以便于上层业务按照业务属性或者业务特性进行分类管理,使得上层业务更加内聚,模块划分更加清晰,减少运维成本,具体可参照图4。
在本实施例中,为了实现相应的步骤,设置相应的技术框架,框架具体内容如下,该框架包括接入层、应用层、逻辑层和设备层,具体可参照图5。
其中,接入层:接收所有的用户请求,依据配置将请求转发到指定的服务,并将响应数据返回给用户。除此之外,接入层还会完成用户身份认证和权限校验。
其中,应用层:以DDD思想为基础,依据功能或者特性抽象封装的独立服务,提供给调用方使用。应用层采用微服务架构部署,各个服务之间独立运行,降低复杂度和运维成本。
其中,逻辑层:流量管理方案的核心部分,负责完成核心逻辑的计算以及底层基础设备的交互。逻辑层封装了一系列通用的上层接口,用于屏蔽底层实现细节,提供给应用层调用;同时,逻辑层采用依赖反转的设计模式,抽象封装了一系列通用的设备交互接口,屏蔽了底层设备的差异性,提高方案的扩展性。此外,方案还采用Prometheus+Grafana的技术框架,构建核心服务和关键逻辑的指标监控及告警体系,实时探知系统的服务质量。
其中,设备层:实际购买部署的网络设备,在用户的请求链路中正在完成流量的转发设备。抽象的通用接口使得本方案可以接入不同厂商、类型的基础网络设备;存储基础服务主要负责核心模块在工作过程中的持久化存储需要,依据数据的重要程度、访问请求的梳理、响应时延等等不同维度的要求,可以选择不同类型的存储设备。
此外,在本实施例中,还涉及相应的模型,包括集群多入口模型(预设分片模型)、集群信息模型和域名模型。
其中,集群多入口模型:在本实施例中每个集群可以存在多条入口,因此需要一个模型来表示这种一对多的关系。入口模型使用集群记录的唯一标识ClusterID来与该集群的每个入口分片进行关联。每个入口分片具有唯一的Label(routeLabel字段)以便进行分片的选择。每个入口会唯一绑定一组entryIPs,作为该分片的入口地址。其次,每个分片还能绑定purpose属性用于指定分片的用途。
字段 | 说明 |
ID | 数据库主键 |
ClusterID | 集群唯一ID |
RouterLabel | 集群入口分片名称 |
Purpose | 分片用途 |
EntryIPs | 分片入口IP池 |
其中,集群信息模型:该模型用于唯一标识每个集群的基础信息。
字段 | 说明 |
ID | 数据库主键 |
ClusterID | 集群唯一ID |
ClusterName | 集群名称 |
FederationID | 联邦唯一ID |
其中,域名模型:用于持久化存储每条已发布域名的映射信息,包含域名的地址、path、底层设备的配置、后端入口等关键信息。
字段 | 说明 |
ID | 数据库主键 |
FQDN | 发布域名 |
Path | 路径 |
ClusterID | 集群唯一ID |
Weight | 权重 |
ProxyEntryIDs | DNS设备解析入口 |
ReverseProxyIDs | 反向代理解析入口 |
具体的,在本实施例中,集群流量管理的过程具体包括域名发布过程和流量调度过程:
其中,在域名发布过程中,服务提供者在部署好后端服务之后,将需要发布的域名,后端服务信息、部署集群等基础信息准备完成之后,调用本方案的域名发布接口。发布接口收到用户请求数据之后,会对请求数据进行合法性校验。如果校验通过,则会依据请求信息生成相应的任务投递到消息队列中。
其中,核心模块会一直从消息队列中消费任务进行任务处理,当核心模块消费到域名发布任务之后,就会进行域名发布流程处理。核心模块进行域名发布处理的第一步会尝试获取以域名为唯一键的分布式锁,在本方案中是采用ETCD存储来实现的分布式锁,如果加锁失败,则任务处理失败,任务重新被投递到消息队列中,同时,在分布式锁获取成功之后,核心模块会进行域名信息预写入,将本次域名发布的一些基础信息写入持久化存储,同时标识该条域名处理变更状态。
其中,在域名信息预写完成之后,核心模块会依据服务所处的Region、Federation、Cluster等基础信息以及底层设备的地域、负载、转发规则数量等底层信息,选择最佳匹配的底层设备作为本次域名发布的目标设备。除此之外,域名粘性、转发效率要求、可用性要求等一些用户特殊要求也会影响底层设备的匹配。选定最佳匹配的底层设备之后,由于本方案中的集群是存在多个流量入口的模型,因此,需要依据集群分片数量、当前分片负载、是否超过上限、分片用途等各个维度的信息选择最佳匹配的集群入口。当前最佳设备以及最佳流量入口都选定完成之后,就可以按照反向代理设备的要求计算生成相应转发规则,调用通用接口写入底层反向代理设备。
在完成反向代理设备规则写入之后,就需要注册DNS设备,即将目标域名与反向代理设备的地址进行匹配映射写入DNS设备持久化存储。当顺利完成底层设备的转发规则写入之后,意味着该域名的发布已经成功,已经具备了将指定请求流量转发到相应服务的能力。后续,需要更新之前已经预写入的域名信息,记录该条域名的底层设备信息,同时更新该条域名的状态为已发布。
至此,整个域名发布流程已经结束,因此需要释放掉该域名的分布式锁,该域名发布接口存在同步和异步两种发布模式,如果采用同步发布的模式,则域名发布接口会间隔时间内轮询本次操作的结果。如果在接口超时时间内都为查询到结果,则会直接返回超时错误给用户。
其中,在查询域名发布结果之后,会将本次操作关键信息进行结构化存储,保存到审计数据库以便后续进行操作的审计分析及高危操作的定位,并返回域名发布的结果给用户。
其中,该流量调度过程中,业务用户使用域名“service.test.cmb.cn”访问DNS设备,查询该域名对应的后端IP,并在该DNS设备收到用户请求之后,查询映射表,返回“1.1.1.1”的IP地址。
其中,在该用户收到IP地址之后,向目标IP为“1.1.1.1”,Path为“/serviceA”的服务发起请求。
其中,该目标地址对应的是反向代理设备,反向代理设备收到用户请求之后,查询自己的映射表,找到“/serviceA”对应的后端入口地址。之后反向代理设备就会将用户请求转发到后端入口地址(Ingress)。
其中,k8s集群的内部路由可以解决在集群内流量调度的问题,因此依靠内部路由信息,请求最终被转发到集群A下部署的服务serviceA,同时,该集群流量入口将服务的返回结果返回给反向代理设备,此外,并反向代理设备将收到的返回结果直接返回给最终用户。
在本实施例中,所述在接收到用户的请求数据后,获取以域名为唯一键的分布式锁的步骤,包括:在接收到用户的请求数据后,对所述请求数据对应的域名进行解析,其中,解析所述请求数据时,会根据所述请求数据中对应的请求条件,生成与所述域名对应的条件表达式,并根据所述条件表达式,获取以所述域名为唯一键的分布式锁。
可理解的是,在本实施例中提供多个维度的条件来满足业务服务对流量调度的精细化要求。主要分为两个层面:1.租户区分:通过业务服务所属的外网IP、域名等信息来唯一计算业务的租户信息(hash值),并将该映射信息做持久化存储。不同租户之间流量相互隔离,保障业务流量之间不会相互干扰。2.租户内区分:依据HTTP头部信息的解析和规则描述能力为租户内的服务提供了精细化调度的能力。
其中,转发流量时会解析请求域名的PATH、METHOD、DOMAIN等信息来组合相应的条件源语,不同的条件源语之间可以通过与、或、非的运算符来拼接条件表达式,当请求流量的条件表达式符合分流调度规则时,该请求流量就会被调度目标集群的相应服务。条件表达式的方式相较于传统的正则表达式的方式解决了转发配置难以阅读维护的问题,避免因配置编写不当导致性能的退化,具体可参照图7。
在本实施例中,所述将所述域名发布结果发送至所述用户,以供所述用户根据所述域名发布结果访问相应设备和地址的步骤之后,所述方法还包括:将满足预设上层业务预设比例流量转发至集群的新上线的业务服务,以对所述业务服务进行验证测试的要求,并在所述业务服务通过验证测试后,获取用户的流量属性需求,并根据所述流量属性需求,更新相应流量相关规则。
可理解的是,预设上层业务指的是在生产集群环境中上层对应的各项功能业务。
可理解的是,在实际的生产集群环境中,不可避免的需要面对不可抗力因素,比如集群的升级、下线、硬件的损坏等等,这时候就需要将业务服务从当前集群迁移部署到其他集群。
针对这种实际面临的痛点问题,在本实施例中提供了流量无损迁移的能力,方便用户进行服务快速迁移的同时保障服务的稳定运行。当用户需要进行服务迁移时,只需要指定服务部署的新集群以及流量的比例分配就可以完成最基础的流量迁移。在可控范围内,用户可以在新集群上进行业务逻辑、外部依赖、网络策略等多个维度的验证测试,当验证测试通过之后,即可逐步增加流量比例,最终完成流量从旧集群到新集群的迁移。除此之外,用户还可以选择进阶版的迁移策略,将指定用户、账号、接口、来源等多个维度的请求优先迁移到新集群之上进行验证,以满足一些上层业务的特殊逻辑,保障业务服务的顺利迁移。
进一步地,在本实施例中还提供了多个维度的流量隔离能力,以帮助容器服务应对网络故障、断电等极端业务场景,保障上层服务的稳定运行。流量隔离主要分为三个层面:1.反向代理设备的主动探测:反向代理设备在进行流量转发会记录本次流量转发的结果,如果对于某条转发规则的转发失败次数超过了设定阈值就会判断为该转发规则的后端服务出现了某种异常,后续会将该条转发链路进行标记隔离。2.与故障检测机制联动:当故障检测机制检测到流量转发出现异常或者大范围失败时,就会通过预先设置的处理规则,利用本方案的隔离能力,对用户流量链路进行某种程度的隔离,保障剩余部分的稳定运行。3.用户主动触发:当用户从业务层面感知到流量异常或者服务异常时,可以主动通过本方案暴露的能力进行流量的隔离,避免对实际用户造成影响。
此外,在本实施例中同步支持了k8s社区中的集群联邦、可用域、区域等概念,支持上层业务按照自己的业务等级和转发要求,进行联邦、可用域、区域、集群等多个维度的多集群流量调度转发。一方面可以满足不用业务的高可用性要求,最大程度降低突发故障对于上层业务的影响;另一方面也能够屏蔽底层细节,极大的简化用户操作。
其中,当用户完成后端服务的部署进入域名发布阶段后,在本实施例中会从集群生命周期管理平台获取服务的重要等级、部署集群、所属联邦、可用域等基础信息,依据服务重要程度和用户个性化选择适配不同的多集群流量调度策略。普通业务采用单可用区+双集群部署的模式,重要业务则采用双可用域(或三可用域)+双集群部署的模式,而核心应用使用的是三区域+双可用域+双集群的部署方式。
此外,在本实施例中会依据底层基础设施的负载情况、转发规则数量、业务时延等各种关键因素,计算选择最佳的DNS设备和反向代理设备,并完成核心转发规则的写入。用户通过一次简单的发布操作就可以实现跨集群、跨联邦、跨可用域、跨区域等多维度的流量调度能力,满足上层业务将流量同时调度分发到多个集群下业务服务的要求。
此外,在本实施例中,依托于强大的流量精细化调度能力,为上层业务的上线和迭代发布提供了强大的灰度能力。以迭代发布为例,当用户选定某个集群进行新版本业务服务发布后,可以通过本方案提供的能力将特定流量按照指定的比例转发到部署集群的新版本业务之上,这样就可以在可控影响下,在真实环境下对新版业务逻辑和特性进行验证测试,以保证后续迭代的稳定上线。灰度发布时,用户可以指定多个维度的流量属性,包括比例、用户、账号、来源、重要程度、Path、Method等等,本方案会依据用户设置的灰度要求,自动计算生成转发规则,并最终更新到底层DNS设备和反向代理设备。
在本实施例中,所述根据预设匹配规则和所述分布式锁,选择与对应域名的目标设备和目标流量入口的步骤,所述方法还包括:在集群生命周期变更时,获取集群的实时基础信息,并根据所述实时基础信息,生成用于管理所述集群中各项基础信息的集群管理平台,以便在选择目标流量入口时,通过所述集群管理平台,对所述集群的相应数据信息进行一致性校验,其中,若一致性校验不符合校验需求,则应用所述集群管理平台中的信息。
可理解的是,本实施例中针对流量管理的方案与集群生命周期管理平台进行了核心数据的对接,实现了集群信息的自动化注册和更新,实现了集群全生命周期的感知,保障流量管理转发的准确性。
其中,当集群创建成功之后,生命周期管理平台会通过消息队列的方式将集群入口地址、所属联邦、所属可用域、所属区域信息等关键基础信息推送给流量管理平台,并且在后续过程中集群发生变更、下线等关键操作时,将相应变更内如异步推送给流量管理平台。
其中,流量管理平台会持久化存储收到相应集群信息,在后续的流量调度中利用这些集群关键信息来计算转发规则。需要说明的是,本实施例中为了避免数据更新不及时造成流量转发异常问题,在使用集群入口、集群状态等关键信息时,会与集群生命周期管理平台进行数据一致性的校验。当数据不一致时,会优先使用生命周期管理平台的数据,同时修正本地持久化存储的数据。本流量管理方案通过这种方式,打通了集群到服务,服务到流量的自动化链路,消除了可能由人工介入而导致的数据错误和操作不规范等问题,降低人工运维成本。
此外,在本实施例中还设置了一定的流量安全机制来保证流量能够准确安全的调度到后端服务,具体如下:
首先,在本实施例中采用校验码的机制来保证域名的安全使用。在我们的方案中,所有的域名都是基于抢占式注册的,即同一条域名采用先注册先占有的方式。当业务方抢占到某条域名之后,该域名就与该业务方的唯一校验码绑定在一起。后续任何对该域名的变更请求都需要提供该校验码,如果归属者身份校验失败,则直接丢弃该请求并进行审计日志记录。特别是在多Path域名发布以及为域名新增后端服务场景,校验码的机制保证了请求流量真正转发到了正确的后端服务,而不是某些非法用户出于某些原因而进行的流量劫持。
其次,本实施例中引入了多Path域名对称性校验机制来解决流量转发失败的问题。需要说明的是,多Path域名在使用上具有一定的特殊性,特别是在无反向代理设备或跨反向代理设备的场景下,可能存在流量转发错误的问题。具体来说,在跨反向代理设备的场景下,假设用户在集群A部署了Path为“/service1”的后端服务,并且在集群B部署了Path为“/service2”的后端服务,两个服务部署在不同的反向代理设备下。在此基础上用户发布了一个“service.test.cmb.cn”的多Path域名,用于将流量各自调度到对应服务上。请求流量经过DNS设备的解析会随机获取到两个反向代理设备的入口地址的任意一个,就可能存在将本来应该调度到集群A入口的流量调度到集群B入口,而由于集群B本来就没有部署相关的后端服务,因此最终会导致请求错误。
对称性检测是在当DNS设备的解析结果存在多个流量入口时,会进一步判断每个入口下面的所支持的多Path是否相同,即每个入口下部署的后端服务是否相同。如果每个入口对应的后端服务存在不一致的问题,则说明该多Path域名存在对称性问题,本次变更操作可能会导致流量转发异常的问题,应当拒绝本次变更请求。
此外,在本实施例中提供了相应的数据强一致机制,具体的,对于流量管理方案来说,最关键的任务是保证流量调度转发的正确性。不能把业务流量转发错误的后端或者不匹配的服务之上。这就要求所有用于计算转发规则的数据必须准确无误,相关设备上的数据是强一致的。
在本实施例中从两个维度保证数据的强一致性,包括:
关键数据的同步一致性校验。在本实施例中,流量管理平台、底层设备以及集群生命周期管理平台都会有各自的持久化存储,三份存储数据会存在交叉重复存储的问题,因此需要保证三份存储数据中交叉数据是强一致的。
本实施例的解决方案是以流量管理平台的持久化存储数据为准,但是涉及到集群入口地址、集群状态、底层设备状态、当前域名转发规则现状等关键数据必须在使用时做同步的请求校验,如果请求数据失败或者数据校验不一致,则不允许进行域名相关操作。待异常修复或者数据一致之后,才能继续进行域名相关的变更操作。
域名操作的严格锁机制。域名操作必须保障原子性,即任意时刻必须保证任意一条域名数据只能有一个实例进行操作变更,并且必须保证变更操作的原子性。
据此,本实施例中采用分布式锁+持久化存储信息预写的方式保证域名操作严格锁机制。核心模块在进行域名操作之前会先尝试获取以域名作为唯一键的分布式锁,如果加锁失败或者加锁冲突,则不允许本次的域名变更操作,需要将任务重新放回队列,等待下次处理。
需要说明的是,选择以域名作为加锁的唯一键,一方面可以最大程度缩小系统锁的粒度,提高整个系统的并发度和处理效率;另一方面,可以保证域名操作的严格一致性,保证域名操作的合法性。
当分布式锁获取成功之后,核心模块会在整个任务处理过程中维护更新该分布式锁的过期时间,并且保证会在分布式锁第一次过期时间到来之前完成持久化存储信息的预写入。如果在分布式锁第一次过期时间到来之前没有完成信息的预写入,则认为本次任务失败,回滚当前所有已经完成的操作,将任务重新放回任务队列。如果核心模块完成了持久化存储信息预写操作,则任何关于该域名的操作都必须等待当前任务操作完成并成功更新持久化存储信息预写信息之后才能进行,即使出现分布式锁超时或者分布式锁异常重入等极端场景。
在本实施例中,所述根据预设分片模型,确定所述目标流量入口对应的IP的步骤,包括:确定所述预设分片模型中各流量入口分片的性能数据和负载情况,并根据所述性能数据和所述负载情况,筛选出与所述请求数据对应的目标流量入口,从而可根据所述目标流量入口对应的预先绑定的多个用途IP,确定与所述请求数据对应的IP。
可理解的是,为了实现更加精细化的流量调度,本实施例对应方案还支持流量入口多用途IP的能力。该特性允许为集群的每个入口分片绑定多个VIP,同时为每个VIP指定用途属性。后续进行流量调度时,如果上层业务选定了特定的用途,则在筛选集群入口时会依据该属性选择最佳的匹配入口。
举个例子,如果某个集群的两个入口分片各自绑定了一个VIP,指定其中一个分片的用途为“内部”,而另一个分片的用途指定为“互联网”。其中,如果在该集群上部署一个只在内部使用服务时,则最终会选取用途为“内部”的分片作为该服务的集群流量入口,相反,如果是需要提供给互联网用户使用的服务,则最终会选定“互联网”用途的分片。
本实施例通过该特性将不同类型的业务流量在集群入口处进行分流管理,一方面可以依据业务的重要程度和访问请求量配置不同性能的底层设备,最大化提高资源的使用率;另一方面,也保证了关键流量与普通流量的隔离,允许网络安全设备针对关键流量进行更加严格的安全策略,提高集群的防护能力。
此外,为了避免集群流量入口成为性能瓶颈点以及故障域过大的问题,在本实施例中还引入了集群多流量入口的特性。每个k8s集群允许设置多个Ingress流量入口分片,并且支持流量入口分片的横向扩容。集群的每一个新增入口都会通过集群生命周期管理平台同步给流量管理平台,后续当上层业务部署到该集群时,在本实施例中会从每个分片当前转发规则数量、转发流量大小、转发性能负载、是否超过阈值上限等多个维度,筛选出最佳的匹配分片作为最终的流量入口。通过该特性可以尽可能的保证集群的请求流量能够均匀分布在各个入口上,提高流量转发效率,特别是在大流量的场景下。
可理解的是,性能数据指的是不同分片转发流量时表现的性能。
可理解的是,负载情况指的是同步分片转发流量时负载的情况。
本实施例在接收到用户的请求数据后,获取以域名为唯一键的分布式锁,并根据所述分布式锁,选择与对应域名匹配的目标设备和目标流量入口,并根据所述目标设备和所述目标流量入口,生成域名发布结果,从而可将所述域名发布结果发送至所述用户,以供所述用户根据所述域名发布结果访问相应设备和地址,即通过请求数据确定唯一键的分布式锁,选择对应的目标设备和目标流量入口,因而可实现保证用户的访问流量能够被准确接入调度到对应的集群服务上。
如图6所示,基于第一实施例提出本申请集群流量管理方法第二实施例,本实施例中,步骤S20具体包括:
S21,根据预设匹配规则和所述分布式锁,选择与对应域名的目标设备和目标流量入口,其中,所述目标设备包括反向代理设备和DNS设备;
可理解的是,当用户完成后端服务的部署后,可以实现域名的自动注册和发布,轻松打通业务用户到后端服务的链路。在其具体方案设计上采用了关注点分离的模式,对用户屏蔽了流量管理的细节。用户只需要关注业务逻辑的开发,无需了解DNS设备、反向代理设备、集群流量入口、转发规则编写等细节问题,通过一键发布能力就可以实现请求流量的调度和转发,大大减少用户的理解使用成本,让用户可以更加专注于业务逻辑的开发和优化。
可理解的是,预设匹配规则即为选择与对应域名的目标设备和目标流量入口的匹配规则,该匹配规则为自动化匹配规则,具体指的是,寻找与用户请求数据所对应的反向代理设备和DNS设备,以及相应的目标流量入口。
在本实施例中,依据请求信息整理用户发布请求列表,同时获取该域名当前所有已发布列表,并获取用户发布列表中不在已发布列表中的记录,作为本次请求的待发布列表,从而可依据用户后端应用的集群名称,获取集群唯一ID,并进一步获取该集群所有的入口分片记录。之后依据每个分片负载情况,转发规则数量、用途等因素,按照用途优先、负载均衡、存储均衡的策略,计算匹配最佳的入口分片,进而可依据服务所属地域、设备负载、规则数量,选定最佳的反向代理设备和DNS设备。
在本实施例中,所述根据预设匹配规则和所述分布式锁,选择与对应域名的目标设备和目标流量入口的步骤,包括:根据预设匹配规则,解析所述域名的Path,并根据预设匹配条件和所述域名对应的Path,选择满足相应业务需求的DNS设备,并选择满足与所述DNS设备匹配的反向代理设备,其中,在选择所述反向代理设备时,将以往发布的反向代理设备作为当前域名发布所需的反向代理设备;其中,所述域名支持对应多个Path,所述域名的不同Path与不同的反向代理设备绑定,所述域名的不同Path与不同集群的目标流量入口绑定。
可理解的是,预设匹配条件指的是结合底层设备的性能负载、服务的部署地域、集群的基础信息、用户的定制化要求四个维度的信息来选择DNS设备的匹配条件。
可理解的是,在本实施例中,支持DNS查询的智能解析,依据用户流量的来源信息自动将流量解析调度到最佳的后端服务,避免出现跨地域访问的情况,缩短链路耗时以提高用户体验。具体的,在前期基础网络的网段规划阶段,会为网段绑定地域、机房等重要属性。当请求流量到达DNS设备时,会依据请求来源IP所属的网段信息获取请求的来源,之后将请求流量调度到相同地域的后端服务。如果没有找到相同地域的后端服务,则会依据用户配置的优先级信息,选择优先级最高的后端服务进行请求流量的转发。
可理解的是,相较于普通的HTTP流量调度,在本实施例中,支持域名多Path发布,即支持相同域名下的不同Path解析调度到不同的后端实例。多Path的特性允许上层业务更好的组合归类相关的服务,更容易满足DDD的设计理念,同时能够大大减少注册域名的数量,降低底层DNS设备和反向代理设备的负载,提高流量转发的效率。具体的,在本实施例中将一台DNS设备与一台反向代理设备视为一套流量转发设备,两者共同作用实现一次多Path的流量转发。首先域名相同的服务,经过DNS设备解析之后会返回相同的4层地址,流量转发到该地址之后会被发送到反向代理设备。反向代理设备中为该域名的不同Path绑定了不同集群的入口地址,这样不同的Path的流量最终被调度到了不同的上层业务之上。
可理解的是,在本实施例中支持多权威DNS域名解析,允许用户按照不同的域名、用途选择不同的DNS设备。具体的,在本实施例中支持同时接入多套DNS设备,并为每套DNS设备绑定其根域名或者用途。假设用户使用了类似xxx.paas.cmb.cn的域名,则该条域名信息最终会被注册到负责Paas业务的DNS设备,相反,如果用户使用了xxx.Iaas.cmb.cn的域名,则会使用Iaas业务的DNS设备。一方面可以避免出现DNS设备异常时,所有服务不可用的情况;另一方面,也有利于网络团队更好的管理维护数据,安全团队更好的进行安全策略部署。
可理解的是,在本实施例中支持同步接入多套反向代理设备,并且在流量调度上选择最佳匹配的设备进行调度。具体的,当用户完成服务部署之后,我们会依据服务所属IP信息查询其所属的地域或者Region信息,之后将服务注册到该地域的反向代理设备,避免出现跨地域访问的问题。除此之外,本方案还支持域名粘性保持的策略,即用户重新发布已经删除的域名,该域名会优先选择上次发布的反向代理设备作为本次域名发布的反向代理设备。粘性保持策略可以避免用户在严格的网络环境反复申请开通网络策略,为网络安全策略的实施提供了基础。
S22,根据预设分片模型,确定所述目标流量入口对应的IP,并根据所述IP,生成所述DNS设备的转发规则;
可理解的是,通过分片模型获取本次发布操作的最佳入口分片的入口IP,即为待发布列表的后端服务入口IP池;同时,通过整理计算获取所有已发布列表中后端服务的入口IP池。将待发布后端IP池与已发布后端IP池进行合并去重之后,即为本次域名发布之后,DNS设备的转发规则最终状态。
S23,获取所述用户的流量转发需求,并根据所述流量转发需求,生成所述反向代理设备的反向代理规则;
可理解的是,利用已发布列表及待发布列表计算出该条域名在该Path下所有的后端入口IP池,同时依据流量转发策略、转发比例等用户特殊要求,计算出该条域名在该Path下反向代理规则的最终状态。之后,通过请求反向代理设备获取当前反向代理设备之上的规则现状。利用终态规则减去当前已经存在的规则,算出需要增量下发到反向代理设备的规则。
S24,根据所述转发规则和所述反向代理规则,生成域名发布结果。
可理解的是,将DNS设备的计算结果及反向代理设备的计算结果,原子的下发到底层设备,生成域名发布结果。
其中,必须保证两种设备的下发操作都成功才能认为规则已经下发成功。任意一种设备操作失败都认为本次操作失败,同时已变更的设备需要进行回滚操作。
其中,域名删除转发规则计算方式与发布流程基本一致,需要以计算出终态数据之后,以终态数据为准,将多余转发规则和DNS解析结果进行去除。
本实施例通过根据预设匹配规则和所述分布式锁,选择与对应域名的目标设备和目标流量入口,其中,所述目标设备包括反向代理设备和DNS设备,并根据预设分片模型,确定所述目标流量入口对应的IP,并根据所述IP,生成所述DNS设备的转发规则,并获取所述用户的流量转发需求,并根据所述流量转发需求,生成所述反向代理设备的反向代理规则,从而可根据所述转发规则和所述反向代理规则,生成域名发布结果,即可实现两种设备的转发规则生成,以此保证域名发布。
此外,本申请实施例还提出一种集群流量管理装置,参照图8,所述集群流量管理装置包括:
获取模块10,用于在接收到用户的请求数据后,获取以域名为唯一键的分布式锁;
生成模块20,用于根据所述分布式锁,选择与对应域名匹配的目标设备和目标流量入口,并根据所述目标设备和所述目标流量入口,生成域名发布结果;
发送模块30,用于将所述域名发布结果发送至所述用户,以供所述用户根据所述域名发布结果访问相应设备和地址。
本实施例在接收到用户的请求数据后,获取以域名为唯一键的分布式锁,并根据所述分布式锁,选择与对应域名匹配的目标设备和目标流量入口,并根据所述目标设备和所述目标流量入口,生成域名发布结果,从而可将所述域名发布结果发送至所述用户,以供所述用户根据所述域名发布结果访问相应设备和地址,即通过请求数据确定唯一键的分布式锁,选择对应的目标设备和目标流量入口,因而可实现保证用户的访问流量能够被准确接入调度到对应的集群服务上。
需要说明的是,上述装置中的各模块可用于实现上述方法中的各个步骤,同时达到相应的技术效果,本实施例在此不再赘述。
参照图9,图9为本申请实施例方案涉及的硬件运行环境的设备的结构示意图。
如图9所示,该设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图9中示出的结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图9所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及集群流量管理程序。
在图9所示的设备中,网络接口1004主要用于与外部网络进行数据通信;用户接口1003主要用于接收用户的输入指令;所述设备通过处理器1001调用存储器1005中存储的集群流量管理程序,并执行以下操作:
在接收到用户的请求数据后,获取以域名为唯一键的分布式锁;
根据所述分布式锁,选择与对应域名匹配的目标设备和目标流量入口,并根据所述目标设备和所述目标流量入口,生成域名发布结果;
将所述域名发布结果发送至所述用户,以供所述用户根据所述域名发布结果访问相应设备和地址。
进一步地,处理器1001可以调用存储器1005中存储的集群流量管理程序,还执行以下操作:
根据预设匹配规则和所述分布式锁,选择与对应域名的目标设备和目标流量入口,其中,所述目标设备包括反向代理设备和DNS设备;
根据预设分片模型,确定所述目标流量入口对应的IP,并根据所述IP,生成所述DNS设备的转发规则;
获取所述用户的流量转发需求,并根据所述流量转发需求,生成所述反向代理设备的反向代理规则;
根据所述转发规则和所述反向代理规则,生成域名发布结果。
进一步地,处理器1001可以调用存储器1005中存储的集群流量管理程序,还执行以下操作:
根据预设匹配规则,解析所述分布式锁对应域名的Path;
根据预设匹配条件和所述域名对应的Path,选择满足相应业务需求的DNS设备,并选择满足与所述DNS设备匹配的反向代理设备,其中,在选择所述反向代理设备时,将以往发布的反向代理设备作为当前域名发布所需的反向代理设备;
其中,所述域名支持对应多个Path,所述域名的不同Path与不同的反向代理设备绑定,所述域名的不同Path与不同集群的目标流量入口绑定。
进一步地,处理器1001可以调用存储器1005中存储的集群流量管理程序,还执行以下操作:
在集群生命周期变更时,获取集群的实时基础信息;
根据所述实时基础信息,生成用于管理所述集群中各项基础信息的集群管理平台,以便在选择目标流量入口时,通过所述集群管理平台,对所述集群的相应数据信息进行一致性校验,其中,若一致性校验不符合校验需求,则应用所述集群管理平台中的信息。
进一步地,处理器1001可以调用存储器1005中存储的集群流量管理程序,还执行以下操作:
确定所述预设分片模型中各流量入口分片的性能数据和负载情况;
根据所述性能数据和所述负载情况,筛选出与所述请求数据对应的目标流量入口;
根据所述目标流量入口对应的预先绑定的多个用途IP,确定与所述请求数据对应的IP。
进一步地,处理器1001可以调用存储器1005中存储的集群流量管理程序,还执行以下操作:
在接收到用户的请求数据后,对所述请求数据对应的域名进行解析,其中,解析所述请求数据时,会根据所述请求数据中对应的请求条件,生成与所述域名对应的条件表达式;
根据所述条件表达式,获取以所述域名为唯一键的分布式锁。
进一步地,处理器1001可以调用存储器1005中存储的集群流量管理程序,还执行以下操作:
将满足预设上层业务的预设比例流量转发至集群的新上线的业务服务,以对所述业务服务进行验证测试的要求;
在所述业务服务通过验证测试后,获取用户的流量属性需求,并根据所述流量属性需求,更新相应流量相关规则。
本实施例通过在接收到用户的请求数据后,获取以域名为唯一键的分布式锁,并根据所述分布式锁,选择与对应域名匹配的目标设备和目标流量入口,并根据所述目标设备和所述目标流量入口,生成域名发布结果,从而可将所述域名发布结果发送至所述用户,以供所述用户根据所述域名发布结果访问相应设备和地址,即通过请求数据确定唯一键的分布式锁,因而可实现保证用户的访问流量能够被准确接入调度到对应的集群服务上。
此外,本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有集群流量管理程序,所述集群流量管理程序被处理器执行时实现如下操作:
本实施例通过在接收到用户的请求数据后,获取以域名为唯一键的分布式锁,并根据所述分布式锁,选择与对应域名匹配的目标设备和目标流量入口,并根据所述目标设备和所述目标流量入口,生成域名发布结果,从而可将所述域名发布结果发送至所述用户,以供所述用户根据所述域名发布结果访问相应设备和地址,即通过请求数据确定唯一键的分布式锁,选择对应的目标设备和目标流量入口,因而可实现保证用户的访问流量能够被准确接入调度到对应的集群服务上。
需要说明的是,上述计算机可读存储介质被处理器执行时还可实现上述方法中的各个步骤,同时达到相应的技术效果,本实施例在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种集群流量管理方法,其特征在于,所述集群流量管理方法包括以下步骤:
在接收到用户的请求数据后,获取以域名为唯一键的分布式锁;
根据所述分布式锁,选择与对应域名匹配的目标设备和目标流量入口,并根据所述目标设备和所述目标流量入口,生成域名发布结果;
将所述域名发布结果发送至所述用户,以供所述用户根据所述域名发布结果访问相应设备和地址。
2.如权利要求1所述的集群流量管理方法,其特征在于,所述根据所述分布式锁,选择与对应域名匹配的目标设备和目标流量入口,并根据所述目标设备和所述目标流量入口,生成域名发布结果的步骤,包括:
根据预设匹配规则和所述分布式锁,选择与对应域名的目标设备和目标流量入口,其中,所述目标设备包括反向代理设备和DNS设备;
根据预设分片模型,确定所述目标流量入口对应的IP,并根据所述IP,生成所述DNS设备的转发规则;
获取所述用户的流量转发需求,并根据所述流量转发需求,生成所述反向代理设备的反向代理规则;
根据所述转发规则和所述反向代理规则,生成域名发布结果。
3.如权利要求2所述的集群流量管理方法,其特征在于,所述根据预设匹配规则和所述分布式锁,选择与对应域名的目标设备和目标流量入口的步骤,包括:
根据预设匹配规则,解析所述分布式锁对应域名的Path;
根据预设匹配条件和所述域名对应的Path,选择满足相应业务需求的DNS设备,并选择满足与所述DNS设备匹配的反向代理设备,其中,在选择所述反向代理设备时,将以往发布的反向代理设备作为当前域名发布所需的反向代理设备;
其中,所述域名支持对应多个Path,所述域名的不同Path与不同的反向代理设备绑定,所述域名的不同Path与不同集群的目标流量入口绑定。
4.如权利要求1所述的集群流量管理方法,其特征在于,所述根据预设匹配规则和所述分布式锁,选择与对应域名的目标设备和目标流量入口的步骤,所述方法还包括:
在集群生命周期变化时,获取集群的实时基础信息;
根据所述实时基础信息,生成用于管理所述集群中各项基础信息的集群管理平台,以便在选择目标流量入口时,通过所述集群管理平台,对所述集群的相应数据信息进行一致性校验,其中,若一致性校验不符合校验需求,则应用所述集群管理平台中的信息。
5.如权利要求2所述的集群流量管理方法,其特征在于,所述根据预设分片模型,确定所述目标流量入口对应的IP的步骤,包括:
确定所述预设分片模型中各流量入口分片的性能数据和负载情况;
根据所述性能数据和所述负载情况,筛选出与所述请求数据对应的目标流量入口;
根据所述目标流量入口对应的预先绑定的多个用途IP,确定与所述请求数据对应的IP。
6.如权利要求1所述的集群流量管理方法,其特征在于,所述在接收到用户的请求数据后,获取以域名为唯一键的分布式锁的步骤,包括:
在接收到用户的请求数据后,对所述请求数据对应的域名进行解析,其中,解析所述请求数据时,会根据所述请求数据中对应的请求条件,生成与所述域名对应的条件表达式;
根据所述条件表达式,获取以所述域名为唯一键的分布式锁。
7.如权利要求1所述的集群流量管理方法,其特征在于,所述将所述域名发布结果发送至所述用户,以供所述用户根据所述域名发布结果访问相应设备和地址的步骤之后,所述方法还包括:
将满足预设上层业务的预设比例流量转发至集群的新上线的业务服务,以对所述业务服务进行验证测试的要求;
在所述业务服务通过验证测试后,获取用户的流量属性需求,并根据所述流量属性需求,更新相应流量相关规则。
8.一种集群流量管理装置,其特征在于,所述集群流量管理装置包括:
获取模块,用于在接收到用户的请求数据后,获取以域名为唯一键的分布式锁;
生成模块,用于根据所述分布式锁,选择与对应域名匹配的目标设备和目标流量入口,并根据所述目标设备和所述目标流量入口,生成域名发布结果;
发送模块,用于将所述域名发布结果发送至所述用户,以供所述用户根据所述域名发布结果访问相应设备和地址。
9.一种集群流量管理设备,其特征在于,所述集群流量管理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的集群流量管理程序,所述集群流量管理程序配置为实现如权利要求1至8中任一项所述的集群流量管理方法的步骤。
10.一种存储介质,其特征在于,存储介质上存储有实现集群流量管理方法的程序,实现集群流量管理方法的程序被处理器执行以实现如权利要求1至8中任一项所述集群流量管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410023995.7A CN117812002A (zh) | 2024-01-05 | 2024-01-05 | 集群流量管理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410023995.7A CN117812002A (zh) | 2024-01-05 | 2024-01-05 | 集群流量管理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117812002A true CN117812002A (zh) | 2024-04-02 |
Family
ID=90433683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410023995.7A Pending CN117812002A (zh) | 2024-01-05 | 2024-01-05 | 集群流量管理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117812002A (zh) |
-
2024
- 2024-01-05 CN CN202410023995.7A patent/CN117812002A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11249728B2 (en) | System and method for generating an application structure for an application in a computerized organization | |
US11443007B2 (en) | System and method for managing network traffic routing | |
CN111240763B (zh) | 配置更新方法、装置、设备及存储介质 | |
US8386540B1 (en) | Scalable relational database service | |
US8813225B1 (en) | Provider-arbitrated mandatory access control policies in cloud computing environments | |
CN109995859A (zh) | 一种调度方法、调度服务器及计算机可读存储介质 | |
CN109542611A (zh) | 数据库即服务系统、数据库调度方法、设备及存储介质 | |
US20080183876A1 (en) | Method and system for load balancing | |
CN103685590B (zh) | 获取ip地址的方法及系统 | |
CN108989430B (zh) | 负载均衡方法、装置及存储介质 | |
CN113127199B (zh) | 负载均衡配置方法、装置、设备及存储介质 | |
CN113992680B (zh) | 应用于分布式多活系统的调度方法、装置、设备及介质 | |
CN109862075B (zh) | 一种Redis服务实例的路由方法 | |
CN108595505A (zh) | 数据查询的方法和装置 | |
CN110347718A (zh) | 一种redis分片方法、装置、计算机设备和存储介质 | |
JP4142615B2 (ja) | ネットワークサービスの性能測定方法及びプログラム | |
CN104052828A (zh) | 用于epp上的智能多对多服务路由的方法和系统 | |
EP3306471B1 (en) | Automatic server cluster discovery | |
JP5857806B2 (ja) | 分散処理システムのテスト方法および分散処理システム | |
CN117812002A (zh) | 集群流量管理方法、装置、设备及存储介质 | |
CN115622976A (zh) | 域名管理系统、域名注册和解析方法、装置、设备及介质 | |
CN114564530A (zh) | 一种数据库访问方法、装置、设备及存储介质 | |
CN115208754B (zh) | 配置的下发方法、装置、计算机设备和存储介质 | |
JP6226737B2 (ja) | データ分散管理システム | |
CN117714476A (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 |