TSF 支持原生 Spring Cloud 应用无侵入接入,无需改造即可直接接入 TSF,享受服务注册与发现、服务治理、应用监控和调用链跟踪等功能。
优势说明
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 | 兼容 | - |