-
Notifications
You must be signed in to change notification settings - Fork 1.4k
如何执行区域调试路由
HaojunRen edited this page Oct 15, 2024
·
3 revisions
本文档只适用于Discovery 6.15.0及以上版本的集成方式
在区域调试路由执行的时候,当未对服务指定访问区域的时候,路由到事先指定的区域。该功能属于静态隔离和动态路由结合在一起的灵活方案,适用于开发环境(个人电脑环境)在测试环境(线上环境)进行联调,同时当多套个人环境接入时候,可以保护不同的个人环境间不会彼此调用
在下面的全链路调用路径中
A服务 -> B服务 -> C服务 -> D服务
其中,A服务和B服务在开发环境上,C服务和D服务在测试环境上,希望A服务调用B服务的时候,只会走本地电脑,不会去访问测试环境的B服务,也不会去访问其它本地电脑的B服务;B服务调用C服务的时候,只会去访问测试环境的C服务,C服务调用D服务的时候,也只是在测试环境的区域内
服务实例的元数据设置如下:
① A服务和B服务的区域(Region)元数据配置为MyDEV(本地电脑的名称或者可以区别其它电脑的特征值),如下
spring.cloud.discovery.metadata.region=MyDEV
② C服务和D服务的区域(Region)元数据配置为FAT(测试环境),如下
spring.cloud.discovery.metadata.region=FAT
只需要通过如下步骤:
① 打开启动和关闭区域调试转移
开关
# 启动和关闭区域调试转移。缺失则默认为false
spring.application.strategy.region.transfer.enabled=true
② 设置区域调试转移值
<?xml version="1.0" encoding="UTF-8"?>
<rule>
<strategy-failover>
<!-- 区域调试转移,跨区调试路由到指定区域的实例 -->
<region-transfer>FAT</region-transfer>
</strategy-failover>
</rule>
通过在配置中心修改版本偏好值,可以达到动态区域调试路由的效果
或者也可以通过前端传入区域调试转移Header
n-d-region-transfer=FAT
③ 前端传入B服务的区域Header。由于A服务是调用起点,所以不需要配置A服务的值
n-d-region={"service-b":"MyDEV"}
扩展场景:
如果希望C服务访问的是开发环境上的D服务,那么变成
A服务(本地环境) -> B服务(本地环境) -> C服务(测试环境) -> D服务(本地环境)
前端传入区域Header改为
n-d-region={"service-b":"MyDEV", "service-d":"MyDEV"}
- 要调用测试环境中的服务,包括开发环境调用测试环境和测试环境中的服务间调用,必须打开
启动和关闭区域调试转移
开关和设置区域调试转移值
- 要调用开发环境中的服务,包括测试环境回调开发环境和开发环境中的服务间调用,必须加上
n-d-region
的Header进行动态路由
2017-2050 ©Nepxion Studio Apache License
- 如何对接Foundation基础平台实施收敛集成
- 如何对接DevOps运维平台实施流量管控
- 如何部署对接DevOps运维平台的控制台
- 如何对接DevOps运维平台执行半自动化蓝绿灰度发布
- 如何使用DevOps运维平台对接的公共接口
- 如何设计全链路智能编排高级蓝绿灰度发布界面
- 如何实现Windows10下GraalVM本地镜像化
- 蓝绿灰度发布
- 流量染色
- 隔离路由
- 故障转移
- 多活单元化
- 限流熔断降级权限
- 网关动态路由
- 可观测监控
- 如何操作配置中心
- 如何理解框架开关配置
- 如何理解规则策略里内容格式配置
- 如何操作网关和服务的蓝绿灰度发布规则策略配置
- 如何操作网关动态路由规则策略配置
- 如何操作Sentinel规则策略配置
- 如何实施规则策略配置和业务配置在配置中心的合并和分离
- 如何理解自动扫描目录
- 如何自定义流量管控
- 如何自定义实现组合式的防护
- 如何自定义高级配置订阅功能
- 如何自定义订阅框架事件
- 如何自定义解决业务自身跨线程上下文切换的问题
- 如何自定义重用框架内置的Swagger模块
- 如何自定义Header全链路传递
- 如何遵循Nepxion Discovery网关标准实现对其它网关全链路流量管控的二次开发
- 如何遵循Nepxion Discovery服务标准实现对消息队列等其它中间件全链路流量管控的二次开发