功能概述
单元化架构通过核心数据水平拆分、应用服务的无状态设计将相同领域的业务服务划分为一个个独立部署单元,单元内业务闭环。有效解决服务的弹性伸缩、故障隔离、异地多活等微服务应用的高可用问题,同时基于单元化部署以部署单元构建灵活的应用发布策略,如蓝绿发布、灰度发布。
支持业务单元划分
支持跨单元部署
![](https://qcloudimg.tencent-cloud.cn/image/document/8f758bacc30d1a2e69fc50034c8ffaa1.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/8f758bacc30d1a2e69fc50034c8ffaa1.png)
1. 基于智能DNS解析实现域名->地域的IDC机房统一,入口通过调整DNS解析规则实现跨地域流量切换。
2. 通过入口负载->接入网关,按权重比例配置路由,实现流量切分,同城双活应用互为主备。
3. 接入路由到应用,基于网关的标签化路由实现单元服务路由规则匹配。
4. 基于本地缓存的单元路由规则进行服务寻址实现跨单元路由调用。
应用场景
单元化架构常应用在互联网(高用户量的 C 端业务)、大型银行、保险等行业中。任意一个单元支持完整系统的功能,而业务数据垂直划分到不同单元中,每个单元承接自己的业务数据的处理。常见的划分方式有按照用户省份、用户 ID 对用户进行单元化划分。
前提条件
操作步骤
步骤1:启用单元化部署并创建单元范围
新建好的网关默认状态是不支持单元化部署,需要手动开启单元化部署功能。
1. 登录 TSF 控制台。
2. 在左侧导航栏选择网关管理,单击目标网关的ID/名称,进入基本信息页面。
3. 在单元化配置模块,单击右上角的编辑,开启单元化部署功能。
注意
切换单元化部署功能前,请清除当前网关下的分组、分组下API 以及插件配置等数据,否则无法开启。
![](https://qcloudimg.tencent-cloud.cn/image/document/f8e5dbeb6611856165fcffd93a3ccdb5.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/f8e5dbeb6611856165fcffd93a3ccdb5.png)
4. 开启后,在跳出的弹窗中选择导入,进入单元范围页面,单击关联命名空间,将命名空间添加到单元范围中。
![](https://qcloudimg.tencent-cloud.cn/image/document/35305e86351d2195f7a421b5488cb235.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/35305e86351d2195f7a421b5488cb235.png)
5. 单击提交,完成单元范围创建。
说明
同一个普通命名空间只能添加到一个单元范围中,不可重复添加。
同一单元范围中最多可添加200个命名空间。
步骤2:创建单元化规则
单元化部署场景下通过微服务网关访问微服务路径为
微服务网关域名或 IP/分组 context/微服务名称/api
。请求将依据单元化流量划分规则选择目的地命名空间。1. 在单元范围列表页面,选择单元化规则页签。
2. 在单元化规则页面,单击新建规则,填写规则信息,创建单元化规则。
![](https://qcloudimg.tencent-cloud.cn/image/document/1c5a5c2c9a419ab02d17de02f0efb715.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/1c5a5c2c9a419ab02d17de02f0efb715.png)
说明
一条单元化规则最多可添加16个标识配置。
3. 在单元化规则列表,单击目标规则状态栏按钮,使其生效。
![](https://qcloudimg.tencent-cloud.cn/image/document/6f27f06ca096f53919b325050b828173.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/6f27f06ca096f53919b325050b828173.png)
说明
一个网关下可创建多条单元化规则,但同时只能有一条规则生效,当一条规则生效时,其他正在生效的规则将默认关闭。
已生效的规则不能删除,关闭后才能删除。
步骤3:创建分组并导入 API
1. 在分组管理页面,单击新建分组,填写分组信息。
分组名称: 最长为60个字符,只能包含小写字母、数字及分隔符(
_
、-
),且不能以分隔符开头或结尾。访问 context:context 是用户访问网关管理的某一个 API 的路径的路径参数。以“/”开头,不能为空。
托管 API 类型:选择微服务API,单元化部署场景不支持托管外部API。
鉴权类型:密钥鉴权或无鉴权。当选择密钥对鉴权时,请求参数中不带正确的 SecretId 和签名的访问会被拒绝。
![img](https://qcloudimg.tencent-cloud.cn/image/document/2bfb87e80367dbcb35a0ba65282ac9d2.png)
![img](https://qcloudimg.tencent-cloud.cn/image/document/2bfb87e80367dbcb35a0ba65282ac9d2.png)
2. 单击保存&下一步,将分组与微服务网关应用的部署组进行绑定。
注意
当微服务网关作为微服务内部调用网关时,建议绑定微服务下全部部署组。当微服务网关作为外部与微服务间调用的外部网关时,可以选择将某个分组与某个或全部部署组绑定,通过访问部署组域名或IP来访问网关托管的 API。
只有将网关应用的部署组与分组绑定后,才能保证访问部署组 IP 后与对应 API path 访问畅通。
此处分组绑定的部署组是微服务网关应用的部署组,也就是用作部署网关的节点所在的部署组。并非后端微服务的部署组。
单个微服务网关部署组不能绑定多个 context 相同的分组。
3. 在 API 管理页面,选择目标分组,单击新建 API,选择需要导入 API 的命名空间和微服务,将 API 导入分组。
![](https://qcloudimg.tencent-cloud.cn/image/document/9d5969666d6ff1b30e8844e87190c8e4.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/9d5969666d6ff1b30e8844e87190c8e4.png)
说明
单元部署化场景下,只需要导入单元组中一个命名空间中的 API,单元组中的其他命名空间的 API 将同时被导入。例如上图中导入命名空间 shenzhen 中的 API,则单元组中其他命名空间如 shanghai、chongqing、guangzhou 等中的 API 将被自动导入分组。
4. 在分组管理页面,选择目标分组操作栏的发布分组。
当且仅当分组被发布时,才能通过微服务网关访问微服务 API。
如果某一个分组不想被访问,可以单击操作列的下线分组,将分组下线。
步骤4:调试 API
1. 在 API 管理页面,选择目标分组,单击需要调试的 API 路径,进入 API 详情页。
2. 在 API 详情页,单击上方调试页签后,选择右上角调试,进入 API 调试详情页。
3. 在 API 调试详情页,填写调用 API 的默认参数,单击发送请求,在页面右方可看到调用 API 返回结果,结果正常即成功。
4. 在控制台导航树选择依赖分析 > 调用链查询,输入刚刚调用 API 的查询条件,单击查询。
5. 根据查询结果,可以单击 TraceID 进入具体业务,查看调用链详情。