吊炸天,腾讯开源的一站式微服务解决方案

24 阅读4分钟

项目介绍

Spring Cloud Tencent 是腾讯开源的一站式微服务解决方案。

Spring Cloud Tencent 实现了Spring Cloud 标准微服务 SPI,开发者可以基于 Spring Cloud Tencent 快速开发 Spring Cloud 云原生分布式应用。

Spring Cloud Tencent 的核心依托腾讯开源的一站式服务发现与治理平台 PolarisMesh ,实现各种分布式微服务场景。

Spring Cloud Tencent提供的能力包括但不限于:

项目模块

模块名模块说明使用文档
spring-cloud-starter-tencent-all包含所有主线功能的依赖,无需按照功能一个个引入依赖
spring-cloud-starter-tencent-metadata-transfer扩展 feign 的能力,自动在链路上传递元信息。例如用于路由标签信息传递、tracer上下文信息传递等
spring-cloud-starter-tencent-polaris-circuitebreaker北极星的熔断模块
spring-cloud-starter-tencent-polaris-config北极星的配置中心模块
spring-cloud-starter-tencent-polaris-discovery北极星的服务发现模块
spring-cloud-starter-tencent-polaris-ratelimit北极星的限流模块
spring-cloud-starter-tencent-polaris-router北极星的路由模块
spring-cloud-tencent-commons所有模块的基础模块,定义最核心的工具类,数据模型
spring-cloud-tencent-coverage项目单元测试覆盖率模块
spring-cloud-tencent-dependencies项目对外提供依赖BOM
spring-cloud-tencent-examples项目的使用样例代码
spring-cloud-tencent-plugin-starters插件模块,提供常见场景的快速应用
spring-cloud-starter-tencent-discovery-adapter-plugin多服务注册中心适配器插件
spring-cloud-starter-tencent-tsf-adapter-plugin北极星商业化适配器插件
spring-cloud-tencent-featureenv-plugin测试环境路由插件
spring-cloud-tencent-gateway-pluginSCG 插件,用于提供网关常见的功能
spring-cloud-tencent-polaris-contextpolaris 的上下文模块,例如装载 polaris 服务的地址信息等。所有 polaris starter 都依赖此模块
spring-cloud-tencent-polaris-loadbalancerpolaris 的负载均衡模块,用于承载 polaris 的路由插件,2020版及以后无需此模块
spring-cloud-tencent-rpc-enhancementRPC调用增强模块,提供 Feign、RestTemplate 的增强拓展功能

服务注册与路由

应用成功启动后,到 Polaris 控制台查看服务注册信息。如下图所示:

在微服务领域,由于服务做了细粒度的拆分部署服务变的非常的轻量灵活。在结合 k8s 云原生极速弹性能力之后变的更加的强大。但是底层的 Paas 能力只是提供了基础弹性能力,真正发挥能力需要依赖上层的流量调配的能力。

放眼 Spring Cloud 生态,能够深度整合 Spring Cloud 提供场景化服务路由能力的组件套件并不多。这里解释一下场景化,服务调用框架根据一定的规则实现服务路由的能力我们称之为底层原子能力。原子能力是非常通用的能力,但是很多时候并不能直接用于具体的业务场景。例如常见的测试环境分组,就近路由,蓝绿发布等称之为场景。服务路由只有做了场景化之后,才能真正做到开箱即用服务于业务。

Spring Cloud Tencent Polaris Router 目前实现了两种场景化的路由能力以及一种非常灵活的规则路由的能力。

元数据路由

规则路由

就近路由

服务限流

单机限流

单机限流是针对单个被调实例的级别的限流,流量限额只针对当前被调实例生效,不共享,如下图所示。单机限流一般适用于保护服务自身不被打垮,按照每个服务集群单机的容量来计算配额。

分布式限流

分布式限流是针对服务下所有实例级别的限流,多个服务实例共享同一个全局流量限额,如下图所示。分布式限流一般适用于保护第三方服务或者公共服务(比如保护数据库);或者是在网关层进行限流,对通过网关接入的后端服务进行保护。

总结

以上只是简单介绍了 Spring Cloud Tencent 部分能力,想详细了解更多的能力请访问Github 官方主页。

本文由博客一文多发平台 OpenWrite 发布!