检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
常用概念 MAS-GO-SDK-Mysql是基于go-sql-driver/mysql v1.6.0开发的实现支持多活容灾服务的Mysql驱动源,其宗旨是促进开发者对于异地多活的Mysql关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。 父主题: 概述
开发流程 开发的流程如下所示: 版本获取及引入依赖。 通过go.mod引入需要的依赖,是使用MAS-GO-SDK的基础。 配置创建数据源。 通过配置数据源驱动信息,引入MAS-GO-SDK-Mysql创建数据源。 支持以代码方式添加配置信息或者从YAML文件读取配置信息。 按需引入数据源。
常用概念 MAS-GO-SDK-Redis是一个在go-Redis v8.11.3的基础上实现的支持多活容灾服务的Redis连接客户端,其宗旨是促进开发者对于异地多活的Redis关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。 父主题: 概述
配置项说明 表1 InjectionProperties数据结构说明 参数名称 是否必选 参数类型 取值范围 描述 active 是 bool true/false 默认false 故障注入功能是否开启。 duration 是 int - 故障注入持续时间,单位:秒。 interval
如何选择组件版本 SpringBoot接入涉及组件版本参考。 表1 SpringBoot涉及组件版本 GroupId ArtifactId Version 备注 org.springframework.boot spring-boot-autoconfigure-processor
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数据源配置本地所用数据库即可。
Spring Data ElasticSearch接入 接入流程同上。 父主题: MAS-ElasticSearch-SDK使用手册
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
分布式锁场景最佳实践 分布式锁场景需根据所选取的路由模式来选择合适的策略。 路由模式为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" _
配置文件示例。 配置项详细解释参考配置参数说明。 根据是否接入MAS服务,确定是否配置etcd部分。 接入MAS服务,etcd配置必填,以及servers部分下Redis源列表与MAS服务中配置的源保持一致。 无接入MAS服务,etcd配置无须配置,servers部分下Redis源列表以实际使用为准。
appId: xxx // 应用ID,从MAS服务实例页面查询获取 monitorId: xxx // 监控器ID,从MAS服务实例页面查询获取 databaseName: xxx // 数据库名,从MAS服务实例页面查询获取 decipherClassName:
pipeline功能使用示例 pipeline功能使用: 需要返回值示例: @Autowired private MultiZoneClient client; public void Demo() { client.executePipeline(pipeline ->
appId: xxx // 应用ID,从MAS服务实例页面查询获取 monitorId: xxx // 监控器ID,从MAS服务实例页面查询获取 databaseName: xxx // 数据库名,从MAS服务实例页面查询获取 decipherClassName:
Redisson Lock import com.huawei.devspore.mas.Redis.config.Constants; import com.huawei.devspore.mas.Redis.config.MasRedisConfiguration; import