如何解决 Spring Cloud 下测试环境路由问题

本文详细介绍了如何在Spring Cloud Tencent中解决测试环境路由问题,包括基础知识、实现原理和用户操作指南。测试环境路由通过服务实例染色、流量染色和服务路由,实现多测试环境的开发联调,降低维护成本,提高开发效率。文中还讨论了服务路由模型、服务实例标签传递和流量染色的不同方式,并展示了Spring Cloud Tencent的实现细节和配置方法。
摘要由CSDN通过智能技术生成

前言

Spring Cloud Tencent 微服务开发框架自六月底正式对外宣发后,受到了许多开发者非常火热的关注。不到一个月时间, Github Star 数就已突破 2000,超过 1000 名开发者加入我们的社群,并有 20 多个开发者参与贡献项目代码,项目的热门程度极大地超出我们的预期,同时也验证了我们在最初宣发文章里的观点:Spring Boot + Spring Cloud 仍是当前使用相当广泛开发框架。

在这一个月时间里,Spring Cloud Tencent 的关注者们最关心的问题就是, Spring Cloud Tencent 后续规划是什么?

在过去的一段时间,我们的主要精力聚焦在微服务领域最基本的服务治理原子能力,例如服务发现、动态配置、限流熔断、路由等。Spring Cloud 其它套件基本上也局限于这些基础能力。但是企业真正在实践 Spring Cloud 过程中,发现针对自身具体的业务场景,这些原子能力并不能直接提供解决方案,往往需要做二次开发、定制等。例如定制 Spring Cloud Gateway 的 Filter、增强 Feign、支持各种复杂的服务路由场景等。因此,开箱即用的业务通用解决方案对企业来说更具有价值。

综上所述, Spring Cloud Tencent 后续重要的规划之一就是 在不断夯实 服务治理 原子能力的基础上,提供开箱即用的业务通用解决方案,从工具到方案的升级。

为此 Spring Cloud Tencent 新增了 spring-cloud-tencent-plugin-starts 模块,在此模块下实现不同业务场景的解决方案。现阶段我们主要聚焦在精细化流量治理能力场景化方案上,并按照开发流程拆分为三个阶段:

  1. 开发测试阶段的多测试环境场景

  2. 发布阶段的金丝雀发布、蓝绿发布、全链路灰度等

  3. 生产运行阶段的单元化、AB测试等

本期我们主要聊聊开发测试阶段的多测试环境场景实战,详细介绍 Spring Cloud Tencent 实现多测试环境场景的方案。

一、基础知识

1.1 什么是测试环境路由

在实际的开发过程中,一个微服务架构系统下的不同微服务可能是由多个团队进行开发与维护的,每个团队只需关注所属的一个或多个微服务,而各个团队维护的微服务之间可能存在相互调用关系。如果一个团队在开发其所属的微服务,调试的时候需要验证完整的微服务调用链路。此时需要依赖其他团队的微服务,如何部署开发联调环境就会遇到以下问题:

  1. 如果所有团队都使用同一套开发联调环境,那么一个团队的测试微服务实例无法正常运行时,会影响其他依赖该微服务的应用也无法正常运行。

  2. 如果每个团队有单独的一套开发联调环境,那么每个团队不仅需要维护自己环境的微服务应用,还需要维护其他团队环境的自身所属微服务应用,效率大大降低。同时,每个团队都需要部署完整的一套微服务架构应用,成本也随着团队数的增加而大大上升。

此时可以使用测试环境路由的架构来帮助部署一套运维简单且成本较低开发联调环境。测试环境路由是一种基于服务路由的环境治理策略,核心是维护一个稳定的基线环境作为基础环境,测试环境仅需要部署需要变更的微服务。多测试环境有两个基础概念,如下所示:

  1. 基线环境(Baseline Environment): 完整稳定的基础环境,是作为同类型下其他环境流量通路的一个兜底可用环境,用户应该尽量保证基线环境的完整性、稳定性。

  2. 测试环境(Feature Environment): 一种临时环境,仅可能为开发/测试环境类型,测试环境不需要部署全链路完整的服务,而是仅部署本次有变更的服务,其他服务通过服务路由的方式复用基线环境服务资源。

部署完成多测试环境后,开发者可以通过一定的路由规则方式,将测试请求打到不同的测试环境,如果测试环境没有相应的微服务处理链路上的请求,那么会降级到基线环境处理。因此,开发者需要将开发新测试的微服务部署到对应的测试环境,而不需要更新或不属于开发者管理的微服务则复用基线环境的服务,完成对应测试环境的测试。

虽然测试

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值