服务路由基本原理

最近更新时间:2019-04-01 11:56:01

服务路由概述

用户在使用 TSF 运行自己的业务时,由于业务的复杂程度,常常需要部署数目庞大的服务运行在现网环境中。这些服务运行在属性不同的实例上、部署在不同的地域中,用户经常需要根据符合自己特定要求的属性选择服务的提供者,对服务间流量的分配起到掌控的作用。
同时,在微服务的场景下,用户研发新版本上线的迭代周期越来越快,稳定敏捷的上线新版本需要微服务框架能够支持灰度发布、金丝雀发布、滚动发布等发布方式。通过服务路由功能,用户可以配置流量分配权重,设置某些权重的流量被分配到某个版本号中,为灰度发布等上线模式提供了无需终止服务的底层能力支持。为了保证满足客户的定制化需求,TSF 支持用户定制自己的路由标签,并支持选择不同的逻辑形式配置标签值,定向分配流量。 总而言之,服务路由功能的主要作用是将调用流量按照自己的需求进行分配。

服务路由原理

要实现服务路由需要完成两部分操作:

  • 在控制台上,给服务端(服务提供者)设置路由规则。
  • 客户端(服务消费者)获取路由规则, 根据规则来分发请求。

user -> shop -> promotion为例说明服务路由的原理,三个服务特点如下:

  • user:Spring Cloud 应用,使用路由 SDK。
  • shop:Mesh 应用,有两个版本 v1 和 v2.0-beta。
  • promotion:Spring Cloud 应用,有两个版本 v1 和 v2.0-beta。

服务调用和路由情况如下图所示。用户需要在控制台创建如下路由规则:

  • shop 服务详情页中配置路由规则:90%的流量分配到 v1 版本,10%的流量分配到 v2 版本。
  • promotion 服务详情页中配置路由规则:服务名等于 shop 且版本号为 v1 的流量 100% 分配到 v1 版本,服务名等于 shop 且版本号为 v2 的流量100%分配到 v2 版本。