前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯开源的一站式微服务解决方案

腾讯开源的一站式微服务解决方案

作者头像
永恒君
发布2023-03-08 19:36:54
5260
发布2023-03-08 19:36:54
举报
文章被收录于专栏:开源小分队开源小分队

大家好,我是开源大叔!

微服务现在大家都很熟悉了,国内最常见的是 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 依赖

代码语言:javascript
复制
<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、添加配置文件

代码语言:javascript
复制
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 发起服务调用。

代码语言:javascript
复制
<dependency>
    <groupId>com.tencent.cloud</groupId>
    <artifactId>spring-cloud-starter-tencent-polaris-discovery</artifactId>
</dependency>
代码语言:javascript
复制
    @GetMapping("/user-info")
    public String getUser() {
        return restTemplate.getForEntity("http://xxxx/users", String.class).getBody();
    }

项目地址

代码语言:javascript
复制
https://github.com/Tencent/spring-cloud-tencent

总结

Spring Cloud Tencent 相比于 Spring Cloud Alibaba 增加了服务路由功能,同时北极星平台中增加了熔断限流功能,对于使用者更友好。更多功能,感兴趣的同学赶快试试吧~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-02-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源小分队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目简介
  • 功能介绍
  • 项目使用
  • 项目地址
  • 总结
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档