检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用多数据源 上面的方式都是只引入一个数据源,在某些场景下,需要引入多个数据库,操作不同的数据库,此时,可以通过配置不同前缀来注入多个datasource的bean,方法如下: 引入依赖。 <dependency> <groupId>com.huaweicloud.devspore</groupId>
多活容灾MongoDB监控准备 配置多活容灾MongoDB监控,请参考MongoDB监控管理 。 父主题: 约束
分布式锁场景最佳实践 分布式锁场景需根据所选取的路由模式来选择合适的策略。 路由模式为single-read-write, single-read-async-double-write时 由于读写都在同一边,分布式锁不受影响。 路由模式为local-read-single-wri
原生DB 创建go版本下database/sql包sql.DB数据源,进行mysql操作。 在go.mod文件中引入依赖,即引入MAS-GO-SDK。 github.com/huaweicloud/devcloud-go 结合配置项说明,添加配置文件或者配置信息。 配置文件示例config_mysql
gorm 创建gorm.io/gorm包gorm.DB数据源,进行mysql操作。 依赖引入,配置文件或配置信息修改参考原生DB。 初始化创建gorm数据源DevSporeGorm,后续执行Mysql相关操作。 配置文件方式创建。 import ( "log" _
version: v1 #项目版本号,自定义 app-id: xxxx #应用id,从MAS服务实例页面查询获取 monitor-id: xxxx #监控器id,从MAS服务实例页面查询获取MAS监控id databaseName: xxxx #MAS监控的Mongo数据库
非事务中使用强制路由 除了根据路由算法配置路由,SDK还支持通过注解@DynamicRoute强制指定路由,且相比路由算法,注解指定路由优先级更高。存在注解指定路由的场景下,优先根据注解指定进行路由。 注解@DynamicRoute指定路由分为两部分:source和hint,可单
Jedis、Lettuce 直接替换客户端。 import com.huawei.devspore.mas.Redis.adapter.model.SetParams; import com.huawei.devspore.mas.Redis.core.MultiZoneClient;
读命令列表 MAS-Mongo-SDK将以下mongo命令视为读命令,上述的本地读单边写和注解强制路由均根据此表来操作。 表1 读命令列表 序号 命令 描述 1. aggregate、count、distinct、mapReduce Aggregation Commands 2.
Mysql配置示例 结合配置项说明,在配置文件或配置信息添加故障注入相关配置。 配置文件示例config_mysql_chaos.yaml props: version: v1 appId: xxx monitorId: xxxx databaseName: xxxx
cd配置、sources数据源配置、router路由配置。 如果使用MAS服务,props配置、etcd配置则必须要配置,sources数据源配置需要与MAS服务中连接池中的命名一致。如果不对接MAS服务,props配置、etcd配置无需配置,sources数据源配置本地所用数据库即可。
appId: xxx // 应用ID,从MAS服务实例页面查询获取 monitorId: xxx // 监控器ID,从MAS服务实例页面查询获取 databaseName: xxx // 数据库名,从MAS服务实例页面查询获取 decipherClassName:
pipeline功能使用示例 pipeline功能使用: 需要返回值示例: @Autowired private MultiZoneClient client; public void Demo() { client.executePipeline(pipeline ->
local-read-write(单边读写) single-read-write场景具有以下两个特点: 读操作:同步路由到指定active的elasticsearch;写操作:同步路由到指定active的elasticsearch。 支持MAS动态切换激活数据源。 父主题: 使用场景
version: v1 #项目版本号,自定义 app-id: xxxx #应用id,从MAS服务实例页面查询获取 monitor-id: xxxx #监控器id,从MAS服务实例页面查询获取MAS监控id databaseName: xxxx #MAS监控的Mongo数据库
事务中使用强制路由 SDK不支持分布式事务,事务与强制指定路由@DynamicRoute同时使用时,以第一条sql选择的数据源为准,后续sql,即使使用@DynamicRoute指定数据源,也不生效。同一个事务中,不允许访问不同的数据库。 如下,service层的updateUs
Redisson Lock import com.huawei.devspore.mas.Redis.config.Constants; import com.huawei.devspore.mas.Redis.config.MasRedisConfiguration; import
自定义DcsConnection 使用场景:使用RedisTemplate命令时,DcsConnection中的接口没有覆盖到的情况,可以自定义扩展DcsConnection。 自定义DcsConnection。 type选择为normal时使用。 import com.huawei
single-read-write(单边读写) single-read-write场景具有以下两个特点: 读操作:同步路由到指定active的Redis;写操作:同步路由到指定active的Redis。 支持MAS动态切换激活数据源。 父主题: 使用场景
配置文件示例。 配置项详细解释参考配置参数说明。 根据是否接入MAS服务,确定是否配置etcd部分。 接入MAS服务,etcd配置必填,以及servers部分下Redis源列表与MAS服务中配置的源保持一致。 无接入MAS服务,etcd配置无须配置,servers部分下Redis源列表以实际使用为准。