admin管理员组

文章数量:1534214

2024年7月2日发(作者:)

腾讯微服务平台 TSF

腾讯微服务平台 TSF

最佳实践

产品文档

版权所有:腾讯云计算(北京)有限责任公司第1 共15页

腾讯微服务平台 TSF

【版权声明】

©2013-2019 腾讯云版权所有

本文档著作权归腾讯云单独所有,未经腾讯云事先书面许可,任何主体不得以任何形式复制、修改、抄袭、传播全

部或部分本文档内容。

【商标声明】

及其它腾讯云服务相关的商标均为腾讯云计算(北京)有限责任公司及其关联公司所有。本文档涉及的第三方主体

的商标,依法由权利人所有。

【服务声明】

本文档意在向客户介绍腾讯云全部或部分产品、服务的当时的整体概况,部分产品、服务的内容可能有所调整。您

所购买的腾讯云产品、服务的种类、服务标准等应由您与腾讯云之间的商业合同约定,除非双方另有约定,否则,

腾讯云对本文档内容不做任何明示或模式的承诺或保证。

版权所有:腾讯云计算(北京)有限责任公司第2 共15页

腾讯微服务平台 TSF

文档目录

最佳实践

灰度发布

就近路由和跨可用区容灾

托管前端静态资源

版权所有:腾讯云计算(北京)有限责任公司第3 共15页

腾讯微服务平台 TSF

最佳实践

灰度发布

最近更新时间:2019-09-11 10:38:43

当用户需要上线新的功能时,希望使用灰度发布的手段在小范围内进行新版本发布测试。

TSF 支持通过部署组和服务路由来实现灰度发布。

场景说明

consumer 调用 provider 时,provider 有两个版本 v1 和 v2-beta,其中 v2-beta 是测试版本。consumer 首先将

90%的请求分配给 provider v1 版本,剩下的10%分配给 v2-beta 版本。如果发现 v2-beta 版本运行正常,则增加

该版本的流量比例。

前提条件

已经下载基于 TSF Spring Cloud SDK 或者 Mesh 编写的代码程序包。

已经创建了集群和命名空间,集群中导入2个云服务器。

已经创建了 consumer 和 provider 应用(虚拟机部署方式),同时已经创建并部署了 consumer 部署组。

操作步骤

一、provider 创建2个部署组

1. 登录 TSF 控制台。

2. 在左侧导航栏中,单击【应用管理】,进入应用列表页,选择 provider 应用,进入应用详情页。

3. 单击顶部【程序包管理】,上传 v1 和 v2-beta 的程序包。

4. 单击顶部【部署组】,在部署组列表页面创建两个部署组:

版权所有:腾讯云计算(北京)有限责任公司第4 共15页

腾讯微服务平台 TSF

部署组 provider-group-1,添加1个实例,实例规格为1核1G。

部署组 provider-group-2,添加1个实例,实例规格为1核1G。

5. provider-group-1 部署程序包 v1。

6. provider-group-2 部署程序包 v2-beta。

二、配置服务路由规则及初始路由权重 90:10

1. 在左侧导航栏中,单击【服务治理】,进入服务列表页,单击 provider 服务,进入服务详情页。

2. 单击顶部【服务路由】, 新建路由规则,流量来源为 主调服务名等于consumer-demo ,流量目的地如下图所

示,设置 provider-group-1的权重为90,provider-group-2 的权重为10。

3. 在服务路由规则列表中,单击生效状态列的图标启动该规则,稍等几分钟,刷新页面观察列表下方流量比例变化

情况,如果发现 provider-group-1 和 provider-group-2 的流量比例接近 90:10,说明路由规则生效。

三、修改路由权重为 50:50

当 v2-beta 版本服务已经正常运行一段时间后,逐步增加 v2-beta 版本的流量比例,并减少 v1 版本的流量比例。

版权所有:腾讯云计算(北京)有限责任公司第5 共15页

腾讯微服务平台 TSF

1. 在服务路由规则列表中,单击【编辑】。

2. 修改流量目的地中 provider-group-1 和 provider-group-2 的流量比例分别为50和50。

3. 稍等几分钟,刷新页面观察列表下方流量比例变化情况,如果 provider-group-1 和 provider-group-2 的流量

比例接近 50:50,说明路由规则生效。

四、修改路由权重为 10:90

逐步增加 v2-beta 版本的流量比例,并减少 v1 版本的流量比例。操作方法参考 步骤三。

五、修改路由权重为 0:100

1. 修改路由规则,将 provider-group-1 的权重设置为100。

2. 稍等几分钟,刷新页面观察列表下方流量比例变化情况,如果只有 provider-group-1 有流量,说明路由规则生

效。

3. 此时可以停止部署组 provider-group-2 。

使用说明

在真实使用场景中,有以下几点需要考虑:

版权所有:腾讯云计算(北京)有限责任公司第6 共15页

腾讯微服务平台 TSF

评估单个 provider 服务实例可以处理多少请求,并根据流量分配来规划部署组的实例数量。

如果流量比例变化后,可能需要调整部署组的实例数量来满足新的流量比例。

可以通过设置弹性伸缩规则来支持动态调整实例数量。

版权所有:腾讯云计算(北京)有限责任公司第7 共15页

腾讯微服务平台 TSF

就近路由和跨可用区容灾

最近更新时间:2019-03-19 14:18:49

TSF 支持业务同城可用区就近路由和跨可用区容灾。该功能在1.12.0版本(参考 版本更新)发布之后生效,使用前提

条件:

如果是 Spring Cloud 应用,必须使用1.12.0之后版本的 SDK。

如果是虚拟机应用,部署实例必须是1.12.0发布之后导入集群的云主机。

如果是容器应用,部署实例必须是1.12.0发布之后创建或者重新部署。

功能概述

命名空间、集群有如下特点:不同集群可关联同一命名空间,服务支持跨集群访问,详细说明请参考 命名空间。

以 consumer 服务调用 provider 服务为例说明服务跨可用区访问的原理。在上方示意图中有两个集群,分别位于广

州一区和广州二区。集群1分别部署了 consumer 和 provider 微服务,集群2部署了 provider 微服务。两个可用区

的服务都会注册到同一个注册中心集群。

当开启就近路由时,广州一区的 consumer 会优先调用同一可用区的 provider。

版权所有:腾讯云计算(北京)有限责任公司第8 共15页

腾讯微服务平台 TSF

当开启就近路由时,当广州一区的 provider 不可用时,consumer 会跨可用区调用广州二区的 provider。

当关闭就近路由时,广州一区的 consumer 会从两个可用区 provider 中随机选择实例进行调用。

就近路由原理

微服务的路由模块会将可用区作为一种系统标签,当开启就近路由时,服务消费者会将请求流量全部路由到相同可

用区标签的服务提供者,只有当同一可用区服务提供者不可用时,才会进行跨可用区的服务调用;当关闭就近路由

时,服务消费者会随机选择不同可用区的服务提供者实例进行调用。

关于服务路由的更多说明参考 服务路由基本原理 和 服务路由使用方法 。

最佳实践

跨可用区容灾场景下的就近路由

场景:当开启就近路由时,广州一区的 consumer 会优先调用同一可用区的 provider ,只有当广州一区的

provider 不可用时,consumer 才会跨可用区调用广州二区的 provider。

步骤一:准备资源

1. 登录 TSF 控制台。

2. 在左侧导航栏中,单击【集群】,进入集群列表页,单击【新建集群】按钮。

3. 新建虚拟机集群 cluster1,【所在可用区】选择广州一区,设置其他属性。

4. 新建虚拟机集群 cluster2,【所在可用区】选择广州二区,设置其他属性。

5. 集群 cluster1 和集群 cluster2 分别导入所在可用区的云服务器。

6. 在集群 cluster1 的集群详情页 >【命名空间】标签页,单击【新建】按钮,新建命名空间 dev-ns。

版权所有:腾讯云计算(北京)有限责任公司第9 共15页

腾讯微服务平台 TSF

7. 在集群 cluster2 的集群详情页 >【命名空间】标签页,单击【新建】按钮,新建命名空间 dev-ns。

8. 确认命名空间 dev-ns 的就近路由开关默认是开启的。

步骤二:部署应用

1. 在左侧导航栏中,单击【应用管理】,进入应用管理页,单击【新建应用】按钮。

2. 新建应用 consumer-app 和 provider-app。

3. 在应用详情页 >【程序包管理】页面上传 Demo 程序包,Demo 获取请参考 Demo 工程概述。

4. 进入 conumser-app 应用详情页 >【部署组】标签页。

新建部署组 consumer-group, 属于集群 cluster1,命名空间 dev-ns。添加实例,部署 consumer-demo 程序

包。

5. 在 provider-app 应用详情页 >【部署组】标签页

新建部署组 provider-group-03,属于集群 cluster1,命名空间 dev-ns,添加实例,部署 provider-demo 程

序包。

新建部署组 provider-group-04,属于集群 cluster2,命名空间 dev-ns,添加实例,部署 provider-demo 程

序包。

关于部署的详细操作参考 虚拟机应用部署组。

步骤三:验证就近路由

consumer 和 provider 部署成功后,观察服务依赖拓扑图是否出现,如果出现说明服务间调用正常。

1. 在控制台左侧导航栏,单击【服务治理】。

2. 单击 provider-demo 进入微服务详情页,单击【服务路由】标签页的流量详情中可以观察来自 consumer 的请

求是否全部路由到部署组 provider-group-03 中,如果请求全部路由到部署组 provider-group-03 证明就近路

版权所有:腾讯云计算(北京)有限责任公司第10 共15页

腾讯微服务平台 TSF

由功能生效。

步骤四:验证容灾

1. 停止部署组 provider-group-03。

2. 观察 provider-demo 服务路由页面的流量详情中可以观察到流量分配到部署组 provider-group-04,证明容灾

能力生效。

步骤五:关闭就近路由

版权所有:腾讯云计算(北京)有限责任公司第11 共15页

腾讯微服务平台 TSF

1. 启动部署组 provider-group-03,观察到流量分配回 provider-group-03。

2. 在命名空间页面关闭就近路由开关,观察到流量均匀分配到2个部署组。

就近路由与路由规则

开启就近路由后,服务消费者会按照路由规则优先调用同一可用区的服务提供者,只有当同一可用区的服务提供者

不可用时,会按照路由规则进行跨可用区调用。

场景:集群1和集群2都部署了 provider 的两个版本 v1 和 v2;路由规则是90%的流量分配到 v1,10%的流量分配

到 v2;命名空间开启了就近路由。

当集群1中 provider 的 v1 和 v2 版本实例都正常时,consumer 会按照路由规则调用同一可用区的 provider。

版权所有:腾讯云计算(北京)有限责任公司第12 共15页

腾讯微服务平台 TSF

当集群1中 provider 的 v1 实例不正常, v2 版本实例正常时,consumer 会按照路由规则将90%请求发送给可用

区二的 v1 ,10%请求发送给可用区一的 v2。

当集群1中 provider 的 v1 和 v2 实例都不正常,consumer 会按照路由规则将所有90%请求发送给可用区二的

v1,10%请求发送给可用区二的 v2。

版权所有:腾讯云计算(北京)有限责任公司第13 共15页

腾讯微服务平台 TSF

托管前端静态资源

最近更新时间:2019-11-27 23:57:11

操作场景

该任务指导用户通过 TSF 的应用管理功能管理 Web 前端的静态资源(HTML、CSS 等),并将静态资源发布到云服

务器上 Nginx 的站点根目录下。

操作步骤

安装 Nginx

用户需要手动在云服务器上安装 Nginx,详细操作请参考 Nginx 官网的 安装说明。

本文以 CentOS 7 为例说明 Ngninx 的安装。

1. 添加 yum 源

Nginx 不在默认的 yum 源中,可以使用 epel 或者官网的 yum 源(本例使用官网的 yum 源)。

sudo rpm -ivh /packages/centos/7/noarch/RPMS/.n

2. 安装 Nginx

执行安装命令:

sudo yum install nginx

3. 配置 Nginx(可选)

设置开机启动:

sudo systemctl enable nginx

启动服务:

sudo systemctl start nginx

重新加载(重新配置之后,如果不希望重启服务,可以使用重新加载):

版权所有:腾讯云计算(北京)有限责任公司第14 共15页

腾讯微服务平台 TSF

sudo systemctl reload nginx

准备部署程序包

部署程序包的目录结构为:

www 目录:该目录名可任意,用于存放 Web 静态资源文件。

脚本:将 www 目录下文件移动到 Nginx 站点目录下,同时启动 Nignx 服务。

脚本:停止 Nignx 服务。

cmdline 文件:检查 Nignx 进程是否存在的 grep 命令关键字。

将部署程序包以 zip 格式压缩。用户可参考 nginx_demo 了解各文件的具体作用和写法。

控制台操作

1. 创建应用。应用类型选择普通应用或者 Mesh 应用。

2. 上传 zip 格式的 Demo 部署程序包。

3. 创建部署组,添加实例,选择目标程序包版本进行部署。

4. 如果部署组状态变为运行中,说明 Nginx 服务已经启动。

5. 在浏览器上访问部署组内任一实例的外网 IP,如果浏览器显示 Hello world! 说明符合预期。

版权所有:腾讯云计算(北京)有限责任公司第15 共15页

本文标签: 服务路由部署流量可用