多活高可用服务 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
- 凭证管理
- 事件监控
- 查看审计日志
- 权限管理
- 最佳实践
- 开发指南
- 常见问题
- 视频帮助
- 文档下载
- 通用参考
本文导读
展开导读
链接复制成功!
原生DB
创建go版本下database/sql包sql.DB数据源,进行mysql操作。
- 在go.mod文件中引入依赖,即引入MAS-GO-SDK。
github.com/huaweicloud/devcloud-go
- 结合配置项说明,添加配置文件或者配置信息。
- 配置文件示例config_mysql.yaml。
props: version: v1 appId: xxx monitorId: xxxx databaseName: xxxx etcd: address: xxx.xxx.xxx.xxx:xxxx apiVersion: v3 username: xxxx password: xxxx httpsEnable: false # require datasource: ds0: url: tcp(xxx.xxx.xxx.xxx:xxxx)/ds0 username: xxxx password: xxxx ds0-slave0: url: tcp(xxx.xxx.xxx.xxx:xxxx)/ds0-slave0 username: xxxx password: xxxx ds0-slave1: url: tcp(xxx.xxx.xxx.xxx:xxxx)/ds0-slave1 username: xxxx password: xxxx ds1: url: tcp(xxx.xxx.xxx.xxx:xxxx)/ds1 username: xxxx password: xxxx ds1-slave0: url: tcp(xxx.xxx.xxx.xxx:xxxx)/ds1-slave0 username: xxxx password: xxxx ds1-slave1: url: tcp(xxx.xxx.xxx.xxx:xxxx)/ds1-slave1 username: xxxx password: xxxx # require router: active: c0 routeAlgorithm: single-read-write retry: times: 10 delay: 50# ms nodes: c0: master: ds0 loadBalance: RANDOM slaves: - ds0-slave0 - ds0-slave1 c1: master: ds1 loadBalance: ROUND_ROBIN slaves: - ds1-slave0 - ds1-slave1
- 配置信息。
func mysqlConfiguration() *config.ClusterConfiguration { return &config.ClusterConfiguration{ Props: &mas.PropertiesConfiguration{ Version: "v1", AppID: "xxx", MonitorID: "xxxx", DatabaseName: "xxx", }, EtcdConfig: &etcd.EtcdConfiguration{ Address: "xxx.xxx.xxx.xxx:xxxx", APIVersion: "v3", Username: "xxxx", Password: "xxxx", HTTPSEnable: false, }, RouterConfig: &config.RouterConfiguration{ Nodes: map[string]*config.NodeConfiguration{ "dc0": { Master: "ds0", LoadBalance: "RANDOM", Slaves: []string{"ds0-slave0","ds0-slave1"}, }, "dc1": { Master: "ds1", LoadBalance: "ROUND_ROBIN", Slaves: []string{"ds1-slave0","ds1-slave1"}, }, }, Active: "dc0", Retry: &config.RetryConfiguration{ Times: "10", Delay: "50", }, RouteAlgorithm: "single-read-write", }, DataSource: map[string]*config.DataSourceConfiguration{ "ds0": { URL: "tcp(xxx.xxx.xxx.xxx:xxxx)/ds0", Username: "xxxx", Password: "xxxx", }, "ds0-slave0": { URL: "tcp(xxx.xxx.xxx.xxx:xxxx)/ds0-slave0", Username: "xxxx", Password: "xxxx", }, "ds0-slave1": { URL: "tcp(xxx.xxx.xxx.xxx:xxxx)/ds0-slave1", Username: "xxxx", Password: "xxxx", }, "ds1": { URL: "tcp(xxx.xxx.xxx.xxx:xxxx)/ds1", Username: "xxxx", Password: "xxxx", }, "ds1-slave0": { URL: "tcp(xxx.xxx.xxx.xxx:xxxx)/ds1-slave0", Username: "xxxx", Password: "xxxx", }, "ds1-slave1": { URL: "tcp(xxx.xxx.xxx.xxx:xxxx)/ds1-slave1", Username: "xxxx", Password: "xxxx", }, }, } }
- 配置文件示例config_mysql.yaml。
- 初始化创建sql.DB数据源DevSporeDb。
- 配置文件方式创建
import ( "database/sql" "log" _ "github.com/huaweicloud/devcloud-go/sql-driver/mysql" ) var ( DevSporeDb *sql.DB err error ) func init() { DevSporeDb, err = sql.Open("devspore_mysql", "./conf/resources/config_mysql.yaml") if err != nil { log.Fatalln(err) } }
- 配置信息方式创建。
import ( "database/sql" "log" devspore "github.com/huaweicloud/devcloud-go/sql-driver/mysql" ) var ( DevSporeDb *sql.DB err error ) func init() { devspore.SetClusterConfiguration(mysqlConfiguration()) DevSporeDb, err = sql.Open("devspore_mysql", "") if err != nil { log.Fatalln(err) } }
- 配置文件方式创建
- 在需要执行Mysql操作的地方使用DevSporeDb执行Mysql操作,具体执行因业务各异,执行对应的sql.DB命令。
父主题: 使用指南