大家好,我是开源大叔!
微服务现在大家都很熟悉了,国内最常见的是 Spring Cloud Alibaba,今天给大家介绍腾讯开源的一站式微服务解决方案-- Spring Cloud Tencent。
Spring Cloud Tencent 主要提供了微服务领域常见的服务注册与发现、配置中心、服务路由、限流熔断、服务监控以及元数据链路透传能力。
1、服务注册与发现
服务注册发现是 SCT 核心功能,任何 Spring Cloud 应用都可以注册到 Polaris 服务端。
2、配置中心
通过反射的方式实现配置中心有动态刷新能力,性能更好。
3、服务路由
A 服务调用 B 服务时,先从注册中心获取全量 B 服务地址信息。没有服务路由,根据负载均衡算法从B服务列表中挑选一个地址进行调用。有了服务路由后,先从从全量服务地址中根据路由规则选取一批目标服务地址,再根据负载均衡算法挑选实例调用。
使用场景包括灰度发布、金丝雀发布、按机房收敛流量等。
4、服务限流
服务限流是服务自我保护措施的一种,SCT 支持服务级限流、 path 限流、请求头等参数级别限流。
限流规则支持按 QPS 快速失败或者匀速排队。
5、服务熔断
服务熔断是一种容错保护机制,SCT支持熔断策略包括故障比例熔断、连续故障熔断、熔断隔离时间。
1、安装北极星服务端
官网测试环境:http://14.116.241.63:8080/
polaris
polaris
2、搭建 Spring Cloud 项目, 添加 Spring Cloud Tencent 依赖
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.tencent.cloud</groupId>
<artifactId>spring-cloud-tencent-dependencies</artifactId>
<version>1.8.1-2021.0.3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 新项目建议使用 all 依赖,一次性引 sct 所有 starter。 -->
<dependencies>
<dependency>
<groupId>com.tencent.cloud</groupId>
<artifactId>spring-cloud-starter-tencent-all</artifactId>
<!-- 注意需要指定 type=pom-->
<type>pom</type>
</dependency>
</dependencies>
3、添加配置文件
server:
port: 8080
spring:
application:
name: quickstart-caller
config:
import: polaris
cloud:
polaris:
# 接入北极星服务端
address: grpc://183.47.111.80:8091
namespace: default
4、启动项目项目注册成功!
5、服务调用
Spring Cloud 中可通过 RestTemplate
或者 Feign
发起服务调用。
<dependency>
<groupId>com.tencent.cloud</groupId>
<artifactId>spring-cloud-starter-tencent-polaris-discovery</artifactId>
</dependency>
@GetMapping("/user-info")
public String getUser() {
return restTemplate.getForEntity("http://xxxx/users", String.class).getBody();
}
https://github.com/Tencent/spring-cloud-tencent
Spring Cloud Tencent 相比于 Spring Cloud Alibaba 增加了服务路由功能,同时北极星平台中增加了熔断限流功能,对于使用者更友好。更多功能,感兴趣的同学赶快试试吧~