多活高可用服务 MAS
多活高可用服务 MAS
- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 开始使用多活高可用服务
- 功能模块
- 命名空间
- 多活管理
- 应用管理
- 监控管理
-
工作流管理
- 工作流简介
- 工作流模板
- 创建工作流
- 编排工作流
- 导入工作流
-
工作流插件说明
- DRS灾备切换
- DRS检查RTO&RPO
- RDS实例读写设置
- RDS实例重启
- RDS实例创建备份
- DWS检查容灾任务
- DWS容灾操作
- DCS开启/关闭白名单
- OBS桶存量比较
- OBS跨区域复制任务设置
- OBS桶策略操作授权用户
- DNS添加记录集
- DNS删除记录集
- DNS公网域名记录集权重设置
- Smart Connect任务操作
- 人工卡点
- 等待
- AOM作业执行
- 混沌实验执行
- PerfTest测试任务启动/停止
- HTTP请求
- MAS多活管理切换/回切
- DDM实例创建备份
- DDM实例读写设置
- RDS实例指定用户读写设置
- RDS检查容灾复制状态
- RDS灾备实例升主
- RDS修改实例参数
- DRS任务操作
- DRS检查任务方向和状态
- RDS自动备份策略设置
- RDS检查实例备份信息
- DRS检查任务信息
- DRS数据级/对象级对比
- OpenGauss容灾操作
- OpenGauss检查容灾信息
- 执行工作流
- 查看工作流执行详情
- 编辑工作流
- 复制工作流
- 删除工作流
- 关注工作流
- 混沌工程
- 应用韧性Hub
- 凭证管理
- 事件监控
- 查看审计日志
- 权限管理
- 最佳实践
- 开发指南
- 常见问题
- 视频帮助
- 文档下载
- 通用参考
本文导读
展开导读
链接复制成功!
非事务中使用强制路由
除了根据路由算法配置路由,SDK还支持通过注解@DynamicRoute强制指定路由,且相比路由算法,注解指定路由优先级更高。存在注解指定路由的场景下,优先根据注解指定进行路由。
注解@DynamicRoute指定路由分为两部分:source和hint,可单独只指定source或hint,也可一起组合使用。
source用于选择数据中心,可以填“dc1”/“dc2”/“ACTIVE”。填“dc1”时,则强制路由到dc1数据中心,不管此时的路由算法为哪种,也不管sql类型是读还是写;同理,填“dc2”时,强制路由到dc2数据中心;比较特殊的是“ACTIVE”,此时路由到active指示的数据中心,同样不管路由算法为哪种,也不管sql类型为哪种。
hint用于读写分离场景,可以填HintType.READMASTER/HintType.READSLAVE/HintType.NONE。其中,HintType.READMASTER为指定从主库读取,HintType.READSLAVE为指定从从库读取,HintType.NONE为不指定。当存在从库,且从库可读(DCG指示从库状态可读,若不对接MAS平台或DCG不指示,默认从库可读)时,默认从从库读取。
用法如下:
@DynamicRoute注解支持在方法、类上添加,如下:
方法上添加注解:
@DynamicRoute(source = "dc2", hint = HintType.READMASTER) @RequestMapping(value = "/query/{id}", method = RequestMethod.GET) public UserModel query(@PathVariable("id") Long id) { return userMapper.select(id); }
类上添加注解:此时针对该类的所有方法注解都生效。
@DynamicRoute(source = "dc2", hint = HintType.READMASTER) @RestController @RequestMapping(value = "/v1/user", produces = {"application/json;charset=UTF-8"}) public class TestUserController { @Autowired private UserMapper userMapper; @RequestMapping(value = "/query/{id}", method = RequestMethod.GET) public UserModel query(@PathVariable("id") Long id) { return userMapper.select(id); } }
父主题: 强制路由