项目介绍
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-plugin | SCG 插件,用于提供网关常见的功能 | |
spring-cloud-tencent-polaris-context | polaris 的上下文模块,例如装载 polaris 服务的地址信息等。所有 polaris starter 都依赖此模块 | |
spring-cloud-tencent-polaris-loadbalancer | polaris 的负载均衡模块,用于承载 polaris 的路由插件,2020版及以后无需此模块 | |
spring-cloud-tencent-rpc-enhancement | RPC调用增强模块,提供 Feign、RestTemplate 的增强拓展功能 |
服务注册与路由
应用成功启动后,到 Polaris 控制台查看服务注册信息。如下图所示:
在微服务领域,由于服务做了细粒度的拆分部署服务变的非常的轻量灵活。在结合 k8s 云原生极速弹性能力之后变的更加的强大。但是底层的 Paas 能力只是提供了基础弹性能力,真正发挥能力需要依赖上层的流量调配的能力。
放眼 Spring Cloud 生态,能够深度整合 Spring Cloud 提供场景化服务路由能力的组件套件并不多。这里解释一下场景化,服务调用框架根据一定的规则实现服务路由的能力我们称之为底层原子能力。原子能力是非常通用的能力,但是很多时候并不能直接用于具体的业务场景。例如常见的测试环境分组,就近路由,蓝绿发布等称之为场景。服务路由只有做了场景化之后,才能真正做到开箱即用服务于业务。
Spring Cloud Tencent Polaris Router 目前实现了两种场景化的路由能力以及一种非常灵活的规则路由的能力。
元数据路由
规则路由
就近路由
服务限流
单机限流
单机限流是针对单个被调实例的级别的限流,流量限额只针对当前被调实例生效,不共享,如下图所示。单机限流一般适用于保护服务自身不被打垮,按照每个服务集群单机的容量来计算配额。
分布式限流
分布式限流是针对服务下所有实例级别的限流,多个服务实例共享同一个全局流量限额,如下图所示。分布式限流一般适用于保护第三方服务或者公共服务(比如保护数据库);或者是在网关层进行限流,对通过网关接入的后端服务进行保护。
总结
以上只是简单介绍了 Spring Cloud Tencent 部分能力,想详细了解更多的能力请访问Github 官方主页。
本文由 mdnice 多平台发布