本技术属于流量控制,特别涉及一种基于微前端架构跨应用多模块的流量控制方法、装置、计算机可读存储介质、电子设备以及计算机程序产品。
背景技术:
1、1、微前端架构的普及与挑战
2、随着前端技术的不断演进,微前端架构已经成为解决前端复杂问题的重要手段。它通过将大型单体应用拆分为多个小型、独立、可复用的模块,实现了业务逻辑的解耦和团队协作的优化。然而,随着微前端架构的普及,企业在实际应用中遇到了以下挑战:
3、版本控制与协同发布:在微前端架构下,不同团队负责的模块可能需要同时发布新版本,如何确保这些模块的协同工作,避免版本冲突,成为一大难题。
4、流量控制与用户体验:在多模块、跨应用的微前端架构中,如何实现精细化的流量控制,保证用户体验的连贯性和稳定性,是现有技术需要解决的问题。
5、2、现有流量控制方法的局限性
6、请求头标识信息不足:在传统的单体应用或微服务架构中,流量控制通常依赖于请求头中的标识信息。然而,在微前端架构中,由于主应用加载子应用时无法传递请求头标识信息,传统控制方法显得力不从心。
7、发布策略的单一性:传统的发布策略如全量发布、蓝绿部署等,在微前端架构下难以实现细粒度的流量控制,无法满足现代devops文化的需求。
8、灰度发布的实施难度大:灰度发布作为一种逐步推出新版本的方法,在微前端架构中实施难度较大,尤其是在跨应用多模块的场景下。
9、3、微前端架构下的流量控制需求
10、细粒度的流量控制:在微前端架构下,需要一种能够针对不同模块、不同版本进行精细化流量控制的方法,以满足不同用户群体的需求。
11、跨应用模块的协同发布:在微前端架构下,开发团队需要一个能够实现跨应用模块协同发布的流量控制装置,以确保新功能的顺利投产。
12、灰度发布的支持:为了降低新版本上线风险,需要一种支持灰度发布的流量控制方法,以便在较小范围内测试新版本,并根据反馈进行调整。
技术实现思路
1、为了应对上述问题和应用需求,本技术提出了一种新的基于微前端架构跨应用多模块的流量控制方法及装置。
2、本技术旨在提供一种基于微前端架构跨应用多模块的流量控制方法和装置,通过本方法可实现在微前端架构下对跨应用多模块的精细流量控制,提高系统的灵活性和可靠性,同时也为开发团队提供了强大的功能来管理和优化用户体验。
3、为了实现上述目的,本技术提供了以下技术方案:
4、本技术的第一方面提供一种基于微前端架构跨应用多模块的流量控制方法,所述方法包括:
5、web服务器接收和转发请求流量:资源请求发送至web服务器,web服务器接收请求流量后由虚拟服务为其设置请求头信息,然后将携带请求头信息的流量转发到istio-proxy;
6、istio配置流量控制策略:istio-proxy基于web服务器转发流量携带的请求头和url上下文信息配置virtualservice流量控制策略和destinationrule流量控制策略,然后按照virtualservice和destinationrule流量控制策略将流量转发到相应的微模块版本;
7、微前端主应用与子应用交付控制策略:微前端主应用与子应用分别接收来自istio的转发流量,返回请求资源响应,分别进行页面渲染;用户触发子应用页面渲染,通过主应用页面将子应用资源请求转发到流量控制装置,流量控制装置基于预设的标记流控策略,将获取的子应用资源请求流量转发到web服务器。
8、可选地,本技术方法中,所述web服务器接收和转发请求流量,包括:
9、步骤11:确定用户访问入口地址,配置虚拟服务;
10、步骤12:资源请求发送至web服务器,虚拟服务配置前后端微模块流量代理,由流量代理根据url路径前缀为请求流量设置特定的请求头信息;
11、步骤13:web服务器将携带请求头信息的流量转发到istio-proxy。
12、可选地,本技术方法中,所述istio配置流量控制策略,包括:
13、步骤21:istio-proxy接收来自web服务器的转发流量;
14、步骤22:istio-proxy基于转发流量携带的请求头和url上下文信息配置virtualservice流量控制策略,virtualservice流量控制策略中定义了主应用和子应用流量流入对应服务版本的流量权重;
15、步骤23:istio-proxy基于转发流量携带的请求头和url上下文信息匹配主应用和子应用的服务版本,设定微模块特定版本的服务流量百分比,配置destinationrule流量控制策略;
16、步骤24:按照virtualservice和destinationrule流量控制策略将流量转发到相应的微模块版本。
17、可选地,本技术方法中,所述微前端主应用与子应用交付控制策略,包括:
18、步骤31:微前端子应用接收来自istio的转发流量,返回请求资源响应,进行子应用页面渲染,展示子应用页面;
19、步骤32:微前端主应用接收来自istio的转发流量,返回请求资源响应,进行主应用页面渲染,用户未登录时展示登录页,用户已登录时展示首屏;
20、步骤33:用户在首屏选择子应用功能,触发子应用页面渲染,通过主应用页面将子应用资源请求转发到流量控制装置;
21、步骤34:流量控制装置接收到来自主应用的子应用资源请求流量;
22、步骤35:流量控制装置基于当前用户属性匹配细粒度流控标记;
23、步骤36:流量控制装置基于预设的标记流控策略,将获取的子应用资源请求流量转发到web服务器;
24、步骤37:主应用根据流量控制装置返回的子应用资源请求url,动态加载子应用资源。
25、可选地,本技术方法中,所述流量控制装置在进行流控策略配置管理时,提供以下两个维度的自定义扩展:
26、维度一、基于场景的微服务版本标识扩展定义:分别为不同服务定义版本标识,以便流量代理转发到对应的版本标识服务上;
27、维度二、基于场景的微服务流控标识扩展定义:配置流控标识到特定版本的流控策略。
28、可选地,本技术方法中还包括:在流量控制装置中配置版本标识定义和流控标识定义;
29、流量控制装置根据流控配置规则生成资源请求url。
30、本技术的第二方面提供一种基于微前端架构跨应用多模块的流量控制装置,所述装置包括:
31、web服务器模块:用于处理静态资源并作为正反向代理;
32、istio-proxy模块:用于调解服务网格内所有服务的入站和出站流量;
33、destination_rule模块:用于定义在路由发生后应用于服务请求的策略集;所述策略集中包括:负载均衡策略、服务实例的健康检查策略和断路器设置策略;
34、virtual_service模块:用于定义将请求路由到服务,同时允许用户配置路由规则、故障注入和重试策略;
35、主应用模块:作为微前端的基座应用,用于承载子应用的调度渲染和应用路由控制;
36、子应用模块:用于将产品中的各个功能模块转换为一个个独立的可执行的前端应用系统;
37、流量控制装置模块:负责实现跨应用多模块的流量控制策略。
38、可选地,本技术装置中,所述流量控制装置模块支持微服务在版本标识和流控标识两个维度进行扩展定义,根据定义控制服务的流量规则和策略,返回资源请求url,动态调整流入各个子应用模块的流量,实现灰度发布和a/b测试功能。
39、本技术的第三方面提供一种电子设备,包括:存储器和处理器;
40、存储器:用于存储计算机程序;
41、处理器:用于执行所述计算机程序,以实现前述的基于微前端架构跨应用多模块的流量控制方法的步骤。
42、本技术的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现前述的基于微前端架构跨应用多模块的流量控制方法的步骤。
43、综上,本技术提出了一种基于微前端架构跨应用多模块的流量控制方法与装置,本技术方法与装置具有以下优点:
44、(1)微前端架构专属流量控制策略:本技术提出了一种适用于微前端架构的流量控制策略,通过在主应用与子应用之间建立一套流量控制装置,实现了微前端主应用请求加载子应用资源流量的精细控制。
45、(2)跨应用模块协同发布:本技术流量控制装置能够实现跨应用模块的协同发布,确保新版本在多个模块中同步上线,提高发布效率。
46、(3)灰度发布与用户体验优化:通过本技术流量控制方法,开发团队可以轻松实现灰度发布,逐步扩大新版本的用户覆盖范围,同时最小化对生产环境的影响,确保用户体验。
47、(4)灵活适应多种发布场景:本技术流量控制方法和装置支持多种发布场景,包括全量发布、蓝绿部署、灰度发布等,可满足不同业务需求。
48、(5)本技术方法与装置支持所有的微前端解决方案,为微前端架构下的流量控制提供了一种全新的解决方案,有助于企业应对快速发展的软件开发需求,提高软件质量,降低发布风险,实现业务的持续迭代和优化。在当前互联网行业竞争激烈的环境下,本技术技术具有广泛的应用前景和显著的市场价值。
49、本技术的其他特征和优点将在随后的说明书中进行阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的技术来实现和获得。