朋友们,最近腾讯的微服务框架
SpringCloudTencent
开源了,咱们今天一起来尝尝鲜。看看它的表现,和易用程度是怎样的。
Spring Cloud Tencent 简介
Spring Cloud Tencent 是腾讯开源的一站式微服务解决方案。
Spring Cloud Tencent 实现了Spring Cloud 标准微服务 SPI,开发者可以基于 Spring Cloud Tencent 快速开发 Spring Cloud 云原生分布式应用。
Spring Cloud Tencent 的核心依托腾讯开源的一站式服务发现与治理平台 Polaris,实现各种分布式微服务场景。
Spring Cloud Tencent提供的能力包括但不限于:
上面的介绍来自于官方,下面的我们动手来使用一下。
通过查阅文档,我们发现Spring Cloud Tencent的注册和配置中心使用的是腾讯自己开源的一站式服务发现与治理平台 Polaris,所以我们首先将Polaris部署好。
环境准备
准备一台云服务器,配置如下:
核心 | 内存 | 带宽 |
---|---|---|
2 | 4g | 1M |
部署Polaris
Polaris简介
Polaris翻译过来就是北极星
,北极星是腾讯开源的服务发现和治理中心,致力于解决分布式或者微服务架构中的服务可见、故障容错、流量控制和安全问题。虽然,业界已经有些组件可以解决其中一部分问题,但是缺少一个标准的、多语言的、框架无关的实现。
北极星解决了哪些问题?
问题类型 | 问题示例 | 解决方案 |
---|---|---|
服务可见 | 主调方如何知道被调方的服务地址 | 注册发现 |
配置可见 | 如何实现服务配置的版本管理、动态下发、按需变更。 | 配置管理 |
故障容错 | 当被调方的部分实例异常时,如何屏蔽异常实例,屏蔽之后如何恢复 | 熔断降级 |
当某些主调方的请求量过多时,如何限制这些主调方的请求,避免影响其他主调方的请求 | 访问限流 | |
流量控制 | 被调方包含多个实例,主调方如何确定请求发送到哪个实例,如何保证请求均衡 | 负载均衡 |
如何实现按地域就近、单元化隔离、金丝雀发布等各种请求调度策略 | 动态路由 |
如上所示,我们发现北极星将熔断降级
、访问限流
这一类故障容错,流量控制功能集成了进来,对比于SpringCloud原生的Eureka,甚至阿里的Nacos还是要方便了很多,我们使用springCloudAlibaba时,要想实现熔断限流等,还需要部署它的sentinel。但是具体是功能差分出来好还是集中化好,这是一个见仁见智的过程。
部署Polaris
关于细节问题我们后续使用中逐步去发现,先来搭建自己的北极星。我们只需要搭建一个单机版即可。
北极星单机版包含以下4个组件:
- polaris-console:可视化控制台,提供服务治理管控页面
- polaris-server:控制面,提供数据面组件及控制台所需的后台接口
- prometheus:服务治理监控所需的指标汇聚统计组件
- pushgateway:prometheus推送网关,支持数据面通过推送方式上报监控数据到prometheus
北极星单机版默认占用以下端口:
- polaris-console:8080(http/tcp)
- polaris-server:8090(http/tcp)、8091(grpc/tcp)
- prometheus:9090(tcp)
- pushgateway:9091(tcp)
注意:这里官方少给了一个端口,配置中心是8093。很坑人
下载并安装
从北极星releases下载Linux单机版软件包。找到我们需要的进行下载:
这里插个题外话,如果你发下资源下载很慢,可以安装如下的浏览器插件,但是前提是要安装Tampermonkey(油猴脚本管理器),之后在点击下面的插件地址进行安装:
刷新你的github,再次到下载地址releases你会发现变成如下的样子:
我们选择韩国节点,就可以快速下载了。
将下载好的压缩包上传到服务器,并解压:
unzip polaris-standalone-release_v1.9.0.linux.amd64
进入文件夹,并执行脚本启动:
cd polaris-standalone-release_v1.9.0.linux.amd64
bash install.sh
访问8080端口:
默认账号密码是:polaris/polaris
到此为止,北极星就部署上了,使用细节咱们配合自己的服务再验证。
服务注册
下面我们将要创建自己的springCloudTencent应用了,这里使用的语言的java,所及首先咱们创建一个springboot项目,这里给出一个小经验,