检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
开发简介 本文主要描述如何使用MAS-GO-SDK在多活容灾场景下对涉及Mysql的服务进行开发,结合样例讲解在开发过程中如何使用。 本文假设您已经具备如下开发能力: 熟悉Go语言,并有Go程序开发经验。 熟悉module开发模式。 熟悉Mysql的常用操作。 MAS-GO-SDK-Mysql
MAS入门简介 多活高可用服务(Multi-Site High Availability Service,简称MAS)源自华为消费者多活应用高可用方案,提供从流量入口、数据到应用层的端到端的业务故障切换及容灾演练能力,保障故障场景下的业务快速恢复,提升业务连续性。 使用条件 已注册华为账号并开通华为云
开始使用多活高可用服务 多活高可用服务(Multi-Site High Availability Service,简称MAS)源自华为消费者多活应用高可用方案,提供从流量入口、数据到应用层的端到端的业务故障切换及容灾演练能力,保障故障场景下的业务快速恢复,提升业务连续性。 使用条件
查看审计日志 概述 云审计服务(Cloud Trace Service,CTS)可以记录MAS相关的操作事件,用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。 开通了云审计服务后,系统开始记录MAS资源的操作。云审计服务管理控制台保存最近7天的操作记录。 开通云审计服务
混沌工程概述 混沌工程(ChaosEngineering)是一种通过主动注入故障识别并修复系统未知隐患的工程实践。MAS-CAST混沌工程服务提供丰富的故障模式库,通过混沌实验编排攻击目标、攻击策略进行故障注入,支持添加背景流量和资源监控,同时在故障注入能力的基础上,通过体系化的流程和规范来创建故障演练
计费说明 计费项 MAS根据您开通的功能模块和购买的多活管理中心以及多活管理中心关联的节点数进行计费。具体收费介绍,请参考价格详情。 表1 MAS计费项 计费项 计费说明 功能模块 根据功能模块版本、功能点数量以及开通时长进行计费。 多活管理中心 根据多活管理中心规格、购买时长以及购买的实例数量进行计费
准备资源 概述 在使用边缘版多活实例前,需要准备虚拟机资源、安装Docker、挂载磁盘,以及检查虚拟机与MAS侧的端口是否连通。 虚拟机资源准备有以下两种场景,您可以根据实际场景准备虚拟机资源。 首次创建多活实例,需要根据MAS实例资源要求申请新的虚拟机。 在已创建过多活实例且实例已删除的虚拟机上重新创建多活实例
容器类故障 容器资源类 表1 容器资源类参数配置 故障类型 故障模式 设置参数 CPU 容器实例内CPU过载 类型:docker_id;配置参数:docker_id/usage 类型:docker_name;配置参数:docker_name/num/usag 内存 容器实例内内存过载
基础设施类故障 服务器硬件类 表1 服务器硬件类参数配置 故障类型 故障模式 设置参数 CPU CPU过载 usage 内存 内存过载 usage 磁盘 磁盘分区满 disk;usage 磁盘IO高 disk;usage 网卡 网卡down dev_name 网络通信类 表2 网络通信类参数配置
Redis配置示例 结合配置项说明,在配置文件或配置信息添加故障注入相关配置。 配置文件示例config_Redis_chaos.yaml props: version: v1 appId: xxx monitorId: xxxx cloud: xxxx region
使用多数据源 上面的方式都是只引入一个数据源,在某些场景下,需要引入多个数据库,操作不同的数据库,此时,可以通过配置不同前缀来注入多个datasource的bean,方法如下: 引入依赖。 <dependency> <groupId>com.huaweicloud.devspore
配置项说明 表1 配置参数详解 参数名称 是否必选 参数类型 取值范围 描述 props 否 PropertiesConfiguration 请参考PropertiesConfiguration数据结构说明。 MAS监控配置,配合etcd使用。 etcd 否 EtcdConfiguration
Mysql配置示例 结合配置项说明,在配置文件或配置信息添加故障注入相关配置。 配置文件示例config_mysql_chaos.yaml props: version: v1 appId: xxx monitorId: xxxx databaseName: xxxx
读写分离 场景二: 如上图,实线为DCG指示激活AZ1,虚线为DCG指示激活为AZ2。跟场景一类似,同样在单边进行读写,不同之处在于,场景二中存在从库,进行读写分离,写操作在主库,读操作在从库进行。 配置如下: # 基础信息 - 可选项, 当配置etcd后为必选 props:
读写分离 场景四: 如上图,实线为DCG指示激活AZ1,虚线为DCG指示激活为AZ2。跟场景三不同之处在于,场景四中存在从库,进行读写分离,写操作在主库,读操作在从库进行。 配置如下: # 基础信息 - 可选项, 当配置etcd后为必选 props: version: v1
gorm 创建gorm.io/gorm包gorm.DB数据源,进行mysql操作。 依赖引入,配置文件或配置信息修改参考原生DB。 初始化创建gorm数据源DevSporeGorm,后续执行Mysql相关操作。 配置文件方式创建。 import ( "log" _
SpringBoot项目接入MAS-ElasticSearch-SDK MAS-ElasticSearch-SDK使用Maven获取版本,根据实际情况设置Maven远程仓库地址等相关配置。 在pom.xml文件中引入依赖。 <properties> <!--以最新的版本号为准
不支持的接口 SDK中部分jdbc相关接口不支持,详细见SDK中com.huawei.devspore.datasource.jdbc.unsupported包。下面列出了Connection、PreparedStatement、ResultSet中的部分不支持接口,如下: Connection
Redis命令参考 MultiZoneClient集成了Redis的命令,使得在多个区域进行数据管理变得更加便捷和高效。 它提供了丰富的功能,包括数据读写、事务管理、数据类型操作等,可以满足各种复杂的业务需求。 常用命令使用方式参考如下: 1 2 3 4 5
无从库 场景一: 如上图,实线为DCG指示激活AZ1,虚线为DCG指示激活为AZ2。DCG指示当前激活的数据中心,SDK根据DCG的指示,在相应的数据中心操作,读写操作都在一边进行。 配置如下: # 基础信息 - 可选项, 当配置etcd后为必选 props: version: