检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
本手册基于一个GitHub上的商城应用改造实践,介绍如何基于MAS将应用改造为同城多活架构的过程。 方案架构 本实践对Demo商城的web应用和Mysql数据库进行同城多活改造。 通过MAS改造后的应用架构图如下所示: 同城多活应用场景: 适用于容灾可用性要求达到99.95%,要求业务双活的容灾场景。
监控管理 MySQL/Oracle/PostgreSQL监控管理 Redis监控管理 MongoDB监控管理 Elasticsearch监控管理 DDM监控管理 API监控管理 监控通用操作 全局配置
实施步骤 添加数据源 创建同步链路 创建应用 创建MySQL监控 应用接入SDK 故障切换演练 父主题: 同城多活改造实践
触发故障为对应模块随机一种异常。 表1 异常故障 模块 故障名称 描述 全模块 SocketErr 网络连接异常。 IORWErr IO异常-读写关闭。 IOUEErr IO异常-意外结束。 NilPointerErr 空指针异常。 mysql SQLErr sql最顶层异常。 SQLTimeoutErr
故障注入前需先创建应用,纳管资源后再为应用中的资源安装UniAgent和探针。 混沌工程目前是region级服务,按照资源是否在当前region,应用可按照云服务和跨云跨IDC两个类别分别进行纳管。 父主题: 创建应用
写操作:同步路由到近端Redis,同时异步发送到远端Redis。 此场景下Redis之间会相互同步,两个Redis位置等同没有主备之分,切换不会产生影响。 当不同实例内SDK操作同一个Redis key时,不能保证两个Redis的一致性。 spop命令双写不适用。 双写有一定的性能影响。 父主题: 使用场景
的一致性。 图1 single-read-async-double-write部署图 读写指定异步双写,适用于读多写少场景,使用SDK同步两个Redis,一条写命令会先在指定Redis上执行,成功后,异步写到另一端。 本地读异步双写场景具体操作: 对于用户,不感知多个Redis。
换。 快速入门 MAS入门简介 使用MAS实现MySQL容灾切换 使用MAS实现Redis容灾切换 使用MAS实现MongoDB容灾切换 使用MAS实现API异常监控 05 开发 描述如何使用Mas-SDK在多活容灾场景下对涉及数据库服务进行开发,结合样例讲解在开发过程中如何使用SDK。
的,哪个是MAS提供的? 如果要做双活,什么样的服务才能做双活,是不是必须是自建云服务才能用双活方案? 当前一些用户的解决方案是如何做到数据库双写的? 多活架构对业务是有要求的吧? 当前多活容灾方案中的RPO和RTO分别是多少? 多活容灾方案对网络是不是也有要求?否则网络不稳定很
管理员”按钮用于注册管理员)。 数据库查询:数据库查询的表为管理员表 ,位于demo-mall数据库下的ums-admim(需要创建一个名为demo-mall的数据库,可使用github后端项目中的document文件夹下的sql文件直接创建相关表。) 管理员注册:单击注册管理员按钮,填写用户名和密码即可。
(可选)配置委托项目ID。 实例ID 配置RDS实例ID。 结果处理 配置重启失败后继续执行的操作。 fail_to_stop:表示失败停止。 fail_to_continue:表示失败继续。 跨账号执行RDS任务 当前账号通过“RDS实例重启”插件执行其他账号下的RDS任务时,需要提前创建委托和创建凭证,其步骤如下:
RDS修改实例参数 概述 “RDS修改实例参数”插件用于修改RDS实例参数。 配置介绍 表1 选择输入-配置说明 参数 配置说明 任务所在region 选择任务所在区域。 凭证 选择凭证,默认显示当前命名空间多活分区下已配置的默认凭证。 项目 选择项目,默认显示当前命名空间多活分区下已配置的默认项目。
器上部署两个MongoDB数据库。 此处以在华为云购买MongoDB数据库为例,建议将两个数据库部署在同一Region下不同的可用区,以提供不同功能可用区之间的故障转移能力和高可用性。 请参考MongoDB的自定义购买,准备MongoDB数据库。两个MongoDB数据库需要配置为相同的数据库名称、用户名和密码。
(可选)配置委托项目ID。 实例ID 配置RDS实例ID。 跨账号执行RDS任务 当前账号通过“RDS实例创建备份”插件执行其他账号下的RDS任务时,需要提前创建委托和创建凭证,其步骤如下: 委托方账号创建委托并授权,授予被委托账号所需IAM和RDS的权限。 IAM所需最小权限策略如下:
应为-1或1到2147483647之间的整数,-1表示不限次数。 任务名称 请自定义输入任务名称。 跨账号执行RDS任务 当前账号通过“RDS检查容灾复制状态”插件执行其他账号下的RDS任务时,需要提前创建委托和创建凭证,其步骤如下: 委托方账号创建委托并授权,授予被委托账号所需IAM和RDS的权限。 IAM所需最小权限策略如下:
步骤一:准备Redis数据库 步骤二:创建MAS应用 步骤三:创建Redis监控 步骤四:切换Redis监控 步骤一:准备Redis数据库 在使用Redis监控前,需要提前准备一个多活实例和两个Redis。您可以选择在华为云官网购买两个Redis,也可以自己在本地两台机器上部署两个Redis。
应为-1或1到2147483647之间的整数,-1表示不限次数。 任务名称 请自定义输入任务名称。 跨账号执行RDS任务 当前账号通过“RDS检查实例备份信息”插件执行其他账号下的RDS任务时,需要提前创建委托和创建凭证,其步骤如下: 委托方账号创建委托并授权,授予被委托账号所需IAM和RDS的权限。 IAM所需最小权限策略如下:
实例ID 配置RDS实例ID。 权限设置 RDS权限设置。 true:设置为只读权限。 false:设置为读写权限。 结果处理 配置权限设置失败后继续执行的操作。 fail_to_stop:表示失败停止。 fail_to_continue:表示失败继续。 跨账号执行RDS任务 当前账
RDS自动备份策略设置 概述 “RDS自动备份策略设置”插件用于设置RDS自动备份策略。 配置介绍 表1 选择输入-配置说明 参数 配置说明 任务所在region 选择任务所在区域。 凭证 选择凭证,默认显示当前命名空间多活分区下已配置的默认凭证。 项目 选择项目,默认显示当前命名空间多活分区下已配置的默认项目。
场景库”页面。 单击“创建故障场景”按钮,填写基本信息。 表1 基本信息配置说明 参数 配置说明 名称 输入故障场景名称。 标签 选择故障场景标签,最多支持4个标签。可选如下标签: 中间件 云原生 容器 容灾演练 数据库 网络 虚机 描述 输入故障场景描述。 在“场景编排”区域中