一、优势说明
Spring Cloud 原生应用迁移至 TSF 具备如下优势:
·无需修改应用代码
·无需引入额外 SDK(除使用调用链功能外)
·无需进行额外配置
二、实现原理
应用到注册中心的所有请求如注册、发现等,都会被代理到我们自己的注册中心从而完成服务的注册和发现。当前的服务治理功能是基于 TSF Mesh 来实现的,服务调用会经过 TSF Mesh 的 sidecar,在 sidecar 中实现负载均衡、服务路由等治理功能。
·用户在使用 TSF 的服务限流/熔断规则功能前,如果已通过 Hystrix/Sentinel 等组件配置了服务限流熔断规则,可能会与此处新建的规则产生冲突,请确保只开启了一种。如果确定要启用 TSF 的服务治理功能,需要关闭已经自建的规则。请参见 关闭服务熔断和限流规则。
·使用原生应用时,如果服务已经在使用调用链后端(如 Skywalking、Jaeger 等),用户可以选择继续使用自己搭建的调用链后端,也可以改用 TSF 提供的调用链功能。请参见使用调用链功能。
三、功能说明
原生应用目前仅支持 Spring Cloud 应用和 Eureka/Consul 两种注册中心和 Nacos 注册配置中心,后续可能支持更多语言和框架,以及更多注册中心。
原生应用不支持全局命名空间特性。全局命名空间说明请参见 命名空间管理。
| Spring Cloud 功能 | 开源实现 | 原生应用 | 说明 |
| 注册发现 | Netflix Eureka Consul Discovery | 兼容 | – |
| 负载均衡 | Netflix Ribbon Spring Cloud loadbalancer | 兼容 | – |
| 服务调用 | Feign RestTemplate | 兼容 | 自定义标签,需在 HTTP 请求头添加 tsf-mesh-tag: KEY=VALUE |
| 服务限流 | – | 支持 | 自定义标签,需在 HTTP 请求头添加 tsf-mesh-tag: KEY=VALUE |
| 服务熔断 | hystrix | 支持 | – |
| 服务鉴权 | – | 支持 | 自定义标签,需在 HTTP 请求头添加 tsf-mesh-tag: KEY=VALUE |
| 配置管理 | Config Server Consul Config | 不支持 | – |
| 链路追踪 | Spring Cloud Sleuth zipkin | 兼容 | – |
| 微服务网关 | Spring Cloud Gateway Netflix Zuul | 兼容 | – |