检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
非事务中使用强制路由 除了根据路由算法配置路由,SDK还支持通过注解@DynamicRoute强制指定路由,且相比路由算法,注解指定路由优先级更高。存在注解指定路由的场景下,优先根据注解指定进行路由。 注解@DynamicRoute指定路由分为两部分:source和hint,可单独
强制路由 除了根据路由算法配置路由,SDK还支持通过注解@DynamicReadRoute指定读操作的路由。注解@DynamicReadRoute指定路由的参数:source,用于选择数据源,可以选择对应的枚举值:MongoSource.ACTIVE, MongoSource.LOCAL。
强制路由 非事务中使用强制路由 事务中使用强制路由 父主题: 使用场景
r方法,开启了事务,并且里面有两个接口,第一个userReopository2上指定路由“dc2”,第二个userReopository2上指定路由“dc1”,此时以第一个接口中的注解指定的路由为准,使用“dc2”的数据源。 @Slf4j @Repository @javax.annotation
完成。 读写分离。 读写分离由SDK实现,支持随机、轮询的负载均衡算法。 故障注入。 支持带注入故障的实例创建,包含延时(波动)、预设异常的故障配置。 single-read-write 单读写类似于主备库,MAS监控各节点健康状态,active节点故障自动切换至其他节点,保证多
分布式锁场景最佳实践 分布式锁场景需根据所选取的路由模式来选择合适的策略。 路由模式为single-read-write, single-read-async-double-write时 由于读写都在同一边,分布式锁不受影响。 路由模式为local-read-single-wri
读命令列表 MAS-Mongo-SDK将以下mongo命令视为读命令,上述的本地读单边写和注解强制路由均根据此表来操作。 表1 读命令列表 序号 命令 描述 1. aggregate、count、distinct、mapReduce Aggregation Commands 2.
single-read-write(单边读写) single-read-write场景具有以下两个特点: 读操作:同步路由到指定active的Redis;写操作:同步路由到指定active的Redis。 支持MAS动态切换激活数据源。 父主题: 使用场景
key自定义,单维度请参考表2。 数据源。 router 是 RouterConfiguration 请参考RouterConfiguration数据结构说明。 路由相关配置。 chaos 否 InjectionProperties 请参考InjectionProperties数据结构说明。 故障注入相关配置。
local-read-write(单边读写) single-read-write场景具有以下两个特点: 读操作:同步路由到指定active的elasticsearch;写操作:同步路由到指定active的elasticsearch。 支持MAS动态切换激活数据源。 父主题: 使用场景
此模式为MAS-Mongo-SDK的默认路由模式,在单边读写模式下,对Mongo的读写操作都在同一Mongo数据库(dc1或dc2)进行,通过配置文件中的active字段或MAS界面配置活跃节点来指定。(通过注解指定数据源的场景例外,注解强制指定路由见强制路由)。 配置示例: devspore:
本地读异步双写场景具体操作: 对于用户,不感知多个Redis。 对于SDK。 读操作:同步路由到近端Redis。 写操作:同步路由到近端Redis,同时异步发送到远端Redis。 此场景下Redis之间会相互同步,两个Redis位置等同没有主备之分,切换不会产生影响。 当不同实例内SDK操作同一个Redis
router.nodes.ds1.azs 该数据中心所属AZ信息 空 路由算法为本地读单边写,且未对接MAS平台时必填。 router.nodes配置罗列本项目中数据源路由节点,所以上表中“ds1”为数据源路由节点名称,如果有多组数据源,按照同样的格式配置多组即可。 节点router
创建监控配置的连接数据库名。 路由算法 选择路由算法,单边读写/单边写本地读。 数据源名称 自定义数据源名称。 数据库地址 数据库的连接地址。 Schema 需要连接的Schema名称。 负载均衡算法 选择负载均衡算法,随机/轮询。 添加Data Source 添加备数据源的配置信息。 数据库读写状态配置
读操作:同步路由到指定的Redis。 写操作:同步路由到指定的Redis,同时异步发送到远端Redis。 此场景下可切换指定的Redis。 当不同实例内SDK操作同一个Redis key时,不能保证两个Redis的一致性。 当SDK发生Redis切换时,切换前产生的异步双写命令和切换后
DRS灾备切换 概述 “DRS灾备切换”插件用于对DRS实时灾备任务进行升主/降备的灾备关系切换。 配置介绍 表1 选择输入-配置说明 参数 配置说明 任务所在region 选择任务所在区域。 凭证 选择凭证,默认显示当前命名空间多活分区下已配置的默认凭证。 项目 选择项目,默认
多活容灾能力是指在同城场景下实现多活故障自动切换,由SDK和MAS服务配合完成。 数据双写 读写分离由SDK实现,支持内存双写、文件双写。 故障注入 支持带注入故障的实例创建,包含延时(波动)、预设异常的故障配置。 single-read-write 单读写类似于主备库,MAS监控各节点健康状态,act
single-write"。在这种路由模式下,读操作在本地进行,不受MAS指示的活跃节点影响。根据配置文件中的AZ信息判断本地属于哪个AZ,读操作时从本地AZ进行读取,写操作仍然根据MAS指示的活跃节点进行操作。(本地指的是当Mongo数据源和props中所配置的AZs为同一AZ时,此Mongo数据源被视为本地)
execute(action -> { action.insert(xxx); // 写操作,路由到active数据源 action.count(xxx); // 读操作,路由到本地数据源 }); 2. 有限制的命令 表1 MAS-Mongo-SDK有限制的命令 命令名称
ties格式,需自行修改格式。 MAS-DB-SDK配置项分为4部分:props配置、etcd配置、sources数据源配置、router路由配置。 如果使用MAS服务,props配置、etcd配置则必须要配置,sources数据源配置需要与MAS服务中连接池中的命名一致。如果不