近日,网易轻舟微服务发布了最新的流量染色和gRPC服务托管功能,其中流量染色功能既可以帮助用户在新版本发布前进行小规模验证,还可以用于测试环境的治理,提高整体测试环境的复用性。gRPC托管服务可以帮助用户屏蔽注册中心、配置中心和元数据中心的复杂度,只需要关注 gRPC服务自身的逻辑。
流量染色的三种妙用
流量染色是指根据流量协议设置对应的流量染色规则,对指定的流量进行染色标记,并在整个调用链中携带该标记。通过染色流量可以对特定的流量进行跟踪和路由,所以流量染色功能常被用于灰度发布的场景。在业务系统迭代过程中会不断有新版本发布,在正式发布前,可以使用流量染色控制先进行小规模验证,通过收集使用体验的数据,对应用新版本的功能、性能、稳定性等指标进行评判,然后再全量升级。即使某个新版本出现问题,也只会影响已染色流量,不会将问题蔓延至整个系统,保证整个系统的正常运行。
同理,流量染色功能还可以用于大促前的性能压测。在线上压测的场景中,为了让压测数据和正式的线上数据实现隔离,常用的方法是对于消息队列,缓存,数据库使用影子的方式。这就需要流量染色的技术,带一个tag进去,说明这个请求是测试数据,还是真实数据。
此外,流量染色功能还可以用于多测试环境的治理。在大规模微服务场景下,不可能每个部门部署一套完整的环境,因为耗费的资源量实在是太大了。这时候就需要合理规划测试环境,可以建立一个基准测试环境,对应Master分支,里面部署全量的应用。每一个分支对应有更新的模块,比如说你修改了五个工程,测试的时候,不需要部署全量的应用,只需要把这五个工程去创建一个Delta测试环境就可以了。
当客户端进行测试的时候,通过流量染色标记不同的测试分支流量,将该流量路由至测试版本。当这五个服务之内相互调用的时候,微服务框架就会选择这五个服务的实例进行调用,如果需要调用五个服务之外的其他服务的时候,微服务框架会到Master环境里面,选择服务实例进行调用。有了流量染色的环境治理机制,测试环境数量会大大减少。
轻舟流量染色的 优势
轻舟的流量染色还具有多方面优势,比如支持HTTP、RPC等多种协议类型,支持NSF服务或API网关为流量入口,支持MQ等中间件的流量染色等。此外,轻舟的流量染色还支持流量染色穿梭和多个流量染色配置,即对于染色链路中未指定的服务,允许再请求中携带染色标记并在下一跳路由回染色链路,甚至允许同一个微服务同时参与多个流量染色。
gRPC 服务托管降低研发成本
本次轻舟的另一更新是gRPC服务托管。gRPC 是一个高性能、通用的开源 RPC 框架,越来越多的用户已经开始采用 gRPC 作为微服务的通信解决方案。将 gPRC服务托管到 NSF微服务框架,用户只需要关注 gRPC服务自身的逻辑,无需再关注注册中心、配置中心和元数据中心的搭建和维护。托管后还可以使用 NSF提供的限流降级、拓扑关系、路由、及监控等能力,而且整个托管过程是无侵入的,不会增加用户的理解成本和开发成本。
轻舟 gRPC 服务托管提供完善的治理能力
目前轻舟 gRPC服务托管支持以下功能需求:
l 支持 gRPC服务的注册与发现;
l 查看 gRPC 服务实例列表;
l 查看 gRPC 服务监控;
l 支持动态配置;
l 查看 gRPC 服务依赖关系和服务拓扑;
l 支持 gPRC 服务的限流、降级、容错等治理能力;
l 支持 gRPC 服务的路由管理;
l 支持 gRPC 服务的流量染色;
通过知识库管理 gRPC 服务元数据;
申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!