spring cloud tencent:框架概括及组件详解(一)

news/2024/11/6 21:32:21/

0.引言

近期腾讯开源了自己的spring cloud体系技术,称职的技术从业者除做好自己的本职工作外,还需要紧跟技术潮流,实时了解前沿技术,所以本期我们就来一起学习spring cloud tencent的技术体系

1. 框架概括

如果大家已经熟悉spring cloud技术体系再来学习spring cloud tencent的话,会比较轻松,如果你还没有掌握spring cloud技术体系,那么更加建议先将spring cloud的基础组件学习完成后再来学习spring cloud tencent,毕竟当前主流仍然是spring cloud、spring cloud alibaba

快速入门spring cloud alibaba可以参考我之前的专栏:
从零开始学习微服务

以下内容基于spring cloud tencent官方文档

1.1 框架介绍

框架本身是标准的微服务框架,包含了网关/路由、配置中心、注册中心等基础组件,也包含了限流模块、熔断模块等。框架本身是基于Polaris(北极星)服务的,Polaris服务整合了以上所有组件,提供了一站式微服务综合解决方案

我们可以基于spring cloud tencent快速搭建微服务项目框架。

其配置中心、注册中心、熔断限流配置中心服务端管理后台如图所示。我们将在后续带大家实际搭建。
在这里插入图片描述

1.2 组成组件

spring cloud tencent本身是微服务框架,所以离不开微服务的基础组件:

  • 注册中心 Spring Cloud Tencent Discovery

  • 配置中心 Spring Cloud Tencent Config

  • 网关/路由 Spring Cloud Tencent Router

  • 服务限流 Spring Cloud Tencent Rate Limit

  • 服务熔断 Spring Cloud Tencent CircuitBreaker

  • 组间调用 Feign或RestTemplate,这点与spring cloud一致

但这里与spring cloud不同的是,以上的注册中心、配置中心、路由、服务限流、熔断降级实际上都是通过Polaris服务来完成的,也就是说比起spring cloud alibaba,我们不需要再单独安装nacos,sentinel等服务,只需要安装一个Polaris即可,妥妥的‘一个打5个’

1.3 项目目录结构

spring cloud tencent项目的相关依赖已经上传到maven中央仓库,我们只需要引入依赖即可,同时分布式微服务框架的搭建也不需要我们再手动的创建网关模块、各类基础模块等,只需要在github上下载spring cloud tencent提供的框架源码,更加方便快捷

其框架自带的模块包括以下几个:

在这里插入图片描述

2. 组件介绍

2.1 注册中心

discovery使用文档

注册中心同样分成服务端和客户端,服务端基于Polaris,客户端只需要引入依赖即可,更加详细的配置我们将在下一章的实操搭建中演示

<dependencies><dependency><groupId>com.tencent.cloud</groupId><artifactId>spring-cloud-starter-tencent-polaris-discovery</artifactId></dependency>
</dependencies>

与nacos的服务模型一样,polaris的服务模型也分成了三层:命名空间、服务、服务实例

在这里插入图片描述
基于命名空间我们就可以实现不同环境的服务隔离了。polaris默认提供了2个命名空间:Polaris和default。其中Polaris命名空间用来存放Polaris的系统服务

polaris注册中心控制台如图所示

在这里插入图片描述

值得一提的是poralis提供了服务别名服务,即可以自定义别名,然后让这个别名指向一个服务,访问这个别名等同于访问这个服务名,可以设置多个别名指向同一个服务,这样可以更加灵活的实现服务请求

在这里插入图片描述

2.2 配置中心

config使用文档

配置中心也分成服务端和客户端,服务端就是我们的polaris服务,客户端只需要引入以下依赖即可

<dependency><groupId>com.tencent.cloud</groupId><artifactId>spring-cloud-starter-tencent-polaris-config</artifactId>
</dependency>

通过配置中心可以更加方便的管理微服务的配置文件,并且实现动态刷新配置文件的作用

与nacos有所差别的是poralis配置文件的创建,需要先创建命名空间

在这里插入图片描述

再创建一个分组
在这里插入图片描述
最后点击分组名进入分组,才能创建服务配置文件

在这里插入图片描述

他在每个配置文件之上挂载了一个分组,实际上这种方式更加适用于多服务架构,更加方便配置文件管理

2.3 路由/网关

poralis提供了路由的功能,实际就是通过设定的规则来进行动态的请求转发。通过该功能我们可以实现多测试环境隔离、全链路灰度、金丝雀测试、A/B测试等功能

poralis配置路由也非常简单,只需要在控制台的服务列表,点击进入对应服务,然后在路由规则页面设置即可

在这里插入图片描述

除此之外,polaris还支持强悍的就近路由能力,也就是说他能够根据访问者的地理位置,转发请求到距离最近的服务上,这不就是CDN的区域就近访问功能吗。

如此我们就可以轻松实现我们的异地多活、跨机房容灾方案了!

安装好CMDB插件后,我们在控制台,服务列表,编辑服务中即可直接开启就近访问
在这里插入图片描述

2.4 服务限流

当面临流量峰值、恶意攻击时,我们不得不限制最大并发量,以此来保证我们一部分用户的正常使用,这就是服务限流。

以往的spring cloud中我们需要使用hytrix、setinel或者通过guava包结合redis实现限流,今天什么都不用了, polaris就能搞定。

其配置在控制台的服务列表,点击进入对应服务,然后在限流规则页面设置即可

在这里插入图片描述

2.5 服务熔断降级

当服务报错时,我们需要通过熔断降级的手段来避免单个或某几个服务报错而导致整个业务不能使用的情况

以往我们可以使用sentinelhytrix来实现熔断降级,但今天,还是它——poralis,他又来了

在poralis中配置熔断降级也很简单,同样在服务实例的熔断规则中配置

在这里插入图片描述

2.6 组间调用

spring cloud tencent的组件调用依然采用feign来实现,这里就不再详细讲解了,如果还不了解feign组件的,可以看看往期的文章:

微服务如何通信?组件通信组件:feign详解

3. 兼容性

考虑大量企业还在使用eureka作为服务发现、注册中心,polaris还提供了兼容eureka客户端的功能,polaris通过暴露8761端口,来实现了eureka客户端的无缝切换,只需要在配置文件中将ip改为polaris服务的ip即可

eureka:client:serviceUrl:defaultZone: http://127.0.0.1:8761/eureka/

5. 权限控制

微服务开发中,常常分组开发,不同的人开发不同的模块,因此我们经常需要通过权限来把控不同服务在polaris上的操作权限,体贴的polaris自然也想到了

它提供了鉴权功能,可以方便的管理用户的访问权限。它基于命名空间和服务资源两个维度来进行权限把控

权限配置也相当简单,只需要在权限控制模块操作即可
在这里插入图片描述

总结

那么本期,我们针对spring cloud tencent的分享就到此结束了,下一期我们将来实际操作从零完整的搭建一套spring cloud tencent框架,有兴趣的小伙伴不妨点个关注,不迷路~


http://www.ppmy.cn/news/601550.html

相关文章

带你玩转Spring Cloud Tencent(一)概述

项目地址 spring-cloud-tencent 介绍 Spring Cloud Tencent 是腾讯开源的一站式微服务解决方案。 Spring Cloud Tencent 实现了Spring Cloud 标准微服务 SPI&#xff0c;开发者可以基于 Spring Cloud Tencent 快速开发 Spring Cloud 云原生分布式应用。 Spring Cloud Tenc…

由Tencent://Message协议想到的一个解决方案

源代码下载&#xff1a;http://files.cnblogs.com/phinecos/HelloWorldProtocal.rar 前天在BruceZhang 的一篇博文《求助&#xff1a;如何在ASP页面中调用Winform程序呢&#xff1f;》中回答了他提出的问题&#xff0c;但细想下觉得我的思路有误。 今天在试用WebQQ的时候&…

Tencent://Message/协议

腾讯官方通过 Tencent://Message/协议可以让QQ用户显示QQ/TM的在线状态发布在互联网上&#xff1b;并且点击 XXX &#xff0c;不用加好友也可以聊天官方链接&#xff1a; http://is.qq.com/webpresence/code.shtml 具体代码&#xff1a; | < img border"0" SRCht…

Tencent SSL 数字证书安装部署

目录 前言一、SSL 证书购买二、配置监听器三、Nginx SSL 配置FAQ 前言 之前写了一篇关于 SSL 证书的文章《Nginx 自签证书实现80转443》&#xff0c;不过这是自签证书的形式进行部署的&#xff0c;尽管能正常访问&#xff0c;但依然显示是不安全的&#xff0c;因为自签证书是得…

QQ的Tencent://Message/协议

QQ即时聊天代码 *********为QQ号码 以前这样写&#xff1a;http://wpa.qq.com/msgrd?V1&Uin*********&Sitehexun.com/ngdao&Menuyes" 现在这样写&#xff1a;tencent://message/?uin*********&Sitehexun.com/ngdao&Menuyes tencent://message/?…

com.tencent.tinker.build.util.TinkerPatchException:

Execution failed for task :app:tinkerPatchRelease. > com.tencent.tinker.build.util.TinkerPatchException: There are fatal reasons that cause Tinker interrupt patch generating procedure, see logs above. 错误记录下面是log日志 打补丁包一直没有成功 &#xf…

关于腾讯的Tencent://Message/协议

我们知道&#xff0c;很多网站的在线QQ客服是通过 Tencent://Message/协议实现的&#xff0c;类似的实现还有迅雷、快播...下载链接等。 那么这是什么原理呢&#xff1f; 经过一番google&#xff0c;博主发现&#xff1a; 微软官方说明&#xff1a;http://msdn.microsoft.com…

开源推荐,腾讯正式开源 Spring Cloud Tencent

一、为什么要做 Spring Cloud Tencent Spring Boot Spring Cloud 仍是 Java 生态最主流的框架 2014 年 4 月 Spring Boot 发布 1.0 版本&#xff0c;经过 8 年时间的发展&#xff0c;Spring Boot 已然成为 Java 开发框架的事实标准。在分布式微服务领域&#xff0c;2016 年 …