检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
开始使用多活高可用服务 多活高可用服务(Multi-Site High Availability Service,简称MAS)源自华为消费者多活应用高可用方案,提供从流量入口、数据到应用层的端到端的业务故障切换及容灾演练能力,保障故障场景下的业务快速恢复,提升业务连续性。 使用条件
混沌工程概述 混沌工程(ChaosEngineering)是一种通过主动注入故障识别并修复系统未知隐患的工程实践。MAS-CAST混沌工程服务提供丰富的故障模式库,通过混沌实验编排攻击目标、攻击策略进行故障注入,支持添加背景流量和资源监控,同时在故障注入能力的基础上,通过体系化的流程和规范来创建故障演练
MAS入门简介 多活高可用服务(Multi-Site High Availability Service,简称MAS)源自华为消费者多活应用高可用方案,提供从流量入口、数据到应用层的端到端的业务故障切换及容灾演练能力,保障故障场景下的业务快速恢复,提升业务连续性。 使用条件 已注册华为账号并开通华为云
配置项详细信息列表 MAS-DB-SDK配置分为props、etcd、sources、router四部分,在SpringBoot项目中配置项使用驼峰风格,详细信息如下表: 表1 props配置项 名称 说明 默认值 备注 props.appId MAS应用ID 空 MAS服务应用列表页中
基础设施类故障 服务器硬件类 表1 服务器硬件类参数配置 故障类型 故障模式 设置参数 CPU CPU过载 usage 内存 内存过载 usage 磁盘 磁盘分区满 disk;usage 磁盘IO高 disk;usage 网卡 网卡down dev_name 网络通信类 表2 网络通信类参数配置
使用多数据源 上面的方式都是只引入一个数据源,在某些场景下,需要引入多个数据库,操作不同的数据库,此时,可以通过配置不同前缀来注入多个datasource的bean,方法如下: 引入依赖。 <dependency> <groupId>com.huaweicloud.devspore
Mysql配置示例 结合配置项说明,在配置文件或配置信息添加故障注入相关配置。 配置文件示例config_mysql_chaos.yaml props: version: v1 appId: xxx monitorId: xxxx databaseName: xxxx
读写分离 场景四: 如上图,实线为DCG指示激活AZ1,虚线为DCG指示激活为AZ2。跟场景三不同之处在于,场景四中存在从库,进行读写分离,写操作在主库,读操作在从库进行。 配置如下: # 基础信息 - 可选项, 当配置etcd后为必选 props: version: v1
Redis命令参考 MultiZoneClient集成了Redis的命令,使得在多个区域进行数据管理变得更加便捷和高效。 它提供了丰富的功能,包括数据读写、事务管理、数据类型操作等,可以满足各种复杂的业务需求。 常用命令使用方式参考如下: 1 2 3 4 5
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> <!--以最新的版本号为准
读写分离 场景二: 如上图,实线为DCG指示激活AZ1,虚线为DCG指示激活为AZ2。跟场景一类似,同样在单边进行读写,不同之处在于,场景二中存在从库,进行读写分离,写操作在主库,读操作在从库进行。 配置如下: # 基础信息 - 可选项, 当配置etcd后为必选 props:
非事务中使用强制路由 除了根据路由算法配置路由,SDK还支持通过注解@DynamicRoute强制指定路由,且相比路由算法,注解指定路由优先级更高。存在注解指定路由的场景下,优先根据注解指定进行路由。 注解@DynamicRoute指定路由分为两部分:source和hint,可单独只指定
不支持的接口 SDK中部分jdbc相关接口不支持,详细见SDK中com.huawei.devspore.datasource.jdbc.unsupported包。下面列出了Connection、PreparedStatement、ResultSet中的部分不支持接口,如下: Connection
无从库 场景一: 如上图,实线为DCG指示激活AZ1,虚线为DCG指示激活为AZ2。DCG指示当前激活的数据中心,SDK根据DCG的指示,在相应的数据中心操作,读写操作都在一边进行。 配置如下: # 基础信息 - 可选项, 当配置etcd后为必选 props: version:
应用接入SDK 下载SDK至本地。 登录MAS控制台,进入“帮助中心”页面。 在“SDK下载>MySQL/Oracle/PostgreSQL”页签,选择Java语言最新版本SDK,单击“下载”。 引用依赖。 商城项目配置POM.xml文件(最外层POM文件),需要添加以下依赖: <
无从库 场景三: 如上图,实线为DCG指示激活AZ1,虚线为DCG指示激活为AZ2。正常场景下,不管DCG激活哪个AZ,读操作都在本地进行;只有写操作是根据DCG激活指示,在相应的AZ进行。当某AZ本地数据库故障,不可读时,读操作根据DCG激活指示。 配置如下: # 基础信息 -
SpringBoot项目接入MAS-Redis-SDK MAS-Redis-SDK使用Maven获取版本,根据实际情况设置Maven远程仓库地址等相关配置。 在pom.xml文件中引入依赖,下面mas.version版本为最新版本,依赖组件版本参考如何选择组件版本。 <properties
内置注入故障 带波动的延时故障 基于延时基数和抖动幅度创建带有波动的延时故障。具体触发要结合故障注入功能是否开启、注入故障概率、延时注入开关、延时故障生效概率决定。 异常故障 内置如下异常故障,结合故障注入功能是否开启、注入故障概率、异常注入开关、异常故障生效概率决定是否触发,触发故障为对应模块随机一种异常
强制路由 除了根据路由算法配置路由,SDK还支持通过注解@DynamicReadRoute指定读操作的路由。注解@DynamicReadRoute指定路由的参数:source,用于选择数据源,可以选择对应的枚举值:MongoSource.ACTIVE, MongoSource.LOCAL