检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
方案架构 本实践对Demo商城的web应用和Mysql数据库进行同城多活改造。 通过MAS改造后的应用架构图如下所示: 同城多活应用场景: 适用于容灾可用性要求达到99.95%,要求业务双活的容灾场景。 同城跨AZ的应用数据多活,并分担部分业务流量。
通过修改数据库端口的方式,使“litemall-db”监控器的数据中心1故障。 查看监控器的活跃的数据中心是否已自动切换。
databaseName 是 string - 数据库名称。 表6 EtcdConfiguration数据结构说明 参数名称 是否必选 参数类型 取值范围 描述 address 是 string - Etcd地址。 apiVersion 是 string v3 Etcd版本。
快速入门 MAS入门简介 使用MAS实现MySQL容灾切换 使用MAS实现Redis容灾切换 使用MAS实现MongoDB容灾切换 使用MAS实现API异常监控 05 开发 描述如何使用Mas-SDK在多活容灾场景下对涉及数据库服务进行开发,结合样例讲解在开发过程中如何使用SDK。
配置文件示例devspore-mongo.yaml: props: version: v1 app-id: xxxx #MAS应用id monitor-id: xxxx #MAS监控id databaseName: xxxx #MAS监控的Mongo数据库 cloud
shardingAlgorithmName: mod shardingAlgorithms: mod: type: MOD props: sharding-count: 2 props: sql-show: true 上面配置数据库用户名和密码未填
如果不对接MAS服务,props配置、etcd配置无需配置,sources数据源配置本地所用数据库即可。 下列场景中的配置都包含了props、etcd的配置,配置项的具体值含义参考配置项详细信息列表。
如果不对接MAS服务,props配置、etcd配置无需配置,sources数据源配置本地所用数据库即可。 下列场景中的配置都包含了props、etcd的配置,配置项的具体值含义参考配置项详细信息列表。
数据中心级自动切换 当MAS发生脑裂或主机房故障导致MAS自身异常时,此时用户可以通过配置来决定是否让应用的数据中心进行自动切换。 数据中心级自动切换配置 登录MAS控制台,在“多活管理”页面单击实例,进入实例控制台。 在页面顶端导航栏选择“全局配置”。 进入“数据中心级自动切换”
DRS数据级/对象级对比 概述 “DRS数据级/对象级对比”插件用于创建执行DRS数据级、对象级对比任务。 配置介绍 表1 选择输入-配置说明 参数 配置说明 任务所在region 选择任务所在区域。 凭证 选择凭证,默认显示当前命名空间多活分区下已配置的默认凭证。 项目 选择项目
Kubernetes集群 工作负载类 表1 工作负载类参数配置 故障类型 故障模式 设置参数 CPU 工作负载CPU过载 cluster_name ;namespace ;workload_name ;usage 内存 工作负载内存过载 cluster_name ;namespace
查看故障模式 针对ECS弹性云服务器、Docker容器、CCE、中间件、等不同对象提供CPU、内存、网络、进程等故障注入的故障模式,通过故障模式库提供各类故障的快速浏览和查询的能力。 查看故障模式 登录MAS控制台。 单击“混沌工程>故障模式库”,进入故障模式库页面。 选择故障模式类型
容器类故障 容器资源类 表1 容器资源类参数配置 故障类型 故障模式 设置参数 CPU 容器实例内CPU过载 类型:docker_id;配置参数:docker_id/usage 类型:docker_name;配置参数:docker_name/num/usag 内存 容器实例内内存过载
软件系统类故障 应用程序类 表1 应用程序类参数配置 故障类型 故障模式 设置参数 进程 杀进程 process 进程持续异常,即使重新拉起也会被再次杀掉 process Java程序类 表2 Java程序类参数配置 故障类型 故障模式 设置参数 Java进程 Java进程内存溢出
实例化为混沌实验组 对于创建好的故障场景库模板,可以通过创建混沌实验组的方式完成实例化。 创建混沌实验组 登录MAS控制台。 单击“混沌工程>故障场景库”,单击一个故障场景卡片进入故障场景详情页。 单击右上角“创建混沌实验组”按钮。 在“基础配置”页签,填写基本信息栏的名称。 在每一个步骤中
基础设施类故障 服务器硬件类 表1 服务器硬件类参数配置 故障类型 故障模式 设置参数 CPU CPU过载 usage 内存 内存过载 usage 磁盘 磁盘分区满 disk;usage 磁盘IO高 disk;usage 网卡 网卡down dev_name 网络通信类 表2 网络通信类参数配置
ShedLock ShedLock是一个用于分布式任务调度的开源库。 它提供了一种简单而可靠的方式来确保在分布式环境中只有一个节点执行指定的任务。 对接ShedLock命令参考如下。 import com.huawei.devspore.mas.redis.core.MultiZoneClient
Redis命令参考 MultiZoneClient集成了Redis的命令,使得在多个区域进行数据管理变得更加便捷和高效。 它提供了丰富的功能,包括数据读写、事务管理、数据类型操作等,可以满足各种复杂的业务需求。 常用命令使用方式参考如下: 1 2 3 4 5
查看执行记录 提供混沌实验、混沌实验组和故障演练的记录。 查看执行总览 登录MAS控制台。 单击“混沌工程>执行记录”,进入“执行记录”页面。 单击“故障演练”页签,可查看执行记录。 故障演练的执行记录跟实验和实验组的执行记录不同,演练的执行记录需要在“记录组”回填响应的数据,回填的数据在大屏和演练报告会作为数据源展示出来
开发流程 开发的流程如下所示: 版本获取及引入依赖。 通过go.mod引入需要的依赖,是使用MAS-GO-SDK的基础。 配置创建数据源。 通过配置数据源驱动信息,引入MAS-GO-SDK-Mysql创建数据源。 支持以代码方式添加配置信息或者从YAML文件读取配置信息。 按需引入数据源