检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
本手册基于一个GitHub上的商城应用改造实践,介绍如何基于MAS将应用改造为同城多活架构的过程。 方案架构 本实践对Demo商城的web应用和Mysql数据库进行同城多活改造。 通过MAS改造后的应用架构图如下所示: 同城多活应用场景: 适用于容灾可用性要求达到99.95%,要求业务双活的容灾场景。
mkdir /opt/cloud/mas 将磁盘挂载到指定目录。 mount /dev/vdb /opt/cloud/mas 配置磁盘分区自动挂载。 vi /etc/fstab 增加如下配置: /dev/vdb /opt/cloud/mas
熟悉Redis的常用操作。 MAS-Redis-SDK MAS-Redis-SDK是一个在Jedis的基础上实现的支持多活容灾服务的Redis连接客户端,MAS-Redis-SDK的宗旨是促进开发者对于异地多活的Redis Server关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。
MAS-GO-SDK-Redis MAS-GO-SDK-Redis是一个在go-redis v8.11.3的基础上实现的支持多活容灾服务的Redis连接客户端,其宗旨是促进开发者对于异地多活的Redis关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。 父主题: 概述
MAS-Mongo-SDK MAS-Mongo-SDK是一个在mongo-java-driver的基础上实现的支持多活容灾服务的MongoDB连接客户端,支持MongoClient和MongoTemplate两种使用方式。MAS-MongoDB-SDK的宗旨是促进开发者对于异地多活的MongoDB
使用指南 Mysql配置示例 Redis配置示例 父主题: 故障注入
MAS-GO-SDK使用手册 Mysql Redis 故障注入
MAS 数据库状态异常 紧急 MAS服务多活管理中心MySQL/Oracle/PostgreSQL监控探测到关系型数据库实例状态异常。 用户登录MAS控制台->多活管理->指定实例->MySQL/Oracle/PostgreSQL监控,查看原因及处理异常。 可能导致关系型数据中心的数据丢失。
商城应用改造 应用场景 资源准备 配置POM.xml和yaml文件 依赖冲突问题修复 SDK相关功能验证 MySQL监控切换验证
实施步骤 添加数据源 创建同步链路 创建应用 创建MySQL监控 应用接入SDK 故障切换演练 父主题: 同城多活改造实践
监控管理 MySQL/Oracle/PostgreSQL监控管理 Redis监控管理 MongoDB监控管理 Elasticsearch监控管理 DDM监控管理 API监控管理 监控通用操作 全局配置
与其他服务的关系 03 入门 介绍MAS的基本使用流程,以及如何创快速建监控和使用MAS实现容灾切换。 快速入门 MAS入门简介 使用MAS实现MySQL容灾切换 使用MAS实现Redis容灾切换 使用MAS实现MongoDB容灾切换 使用MAS实现API异常监控 05 开发 描述如何使用
开通的功能模块删除时失败是什么原因? 绑定命名空间的实例,是否可以更改命名空间? 创建多活实例后实例状态显示为“创建异常”可能是什么原因? 新创建的MySQL监控器监控状态异常怎么处理? 创建同步链路时链路状态显示为“创建异常”怎么处理?
网络连接异常。 IORWErr IO异常-读写关闭。 IOUEErr IO异常-意外结束。 NilPointerErr 空指针异常。 mysql SQLErr sql最顶层异常。 SQLTimeoutErr sql执行超时异常。 redis RedisCommandUKErr 未知指令异常。
single-read-write MAS-Redis-SDK提供了MasRedisConfigurationLoader.load方法,可以读取YAML格式的配置,生成客户端。 @Bean public MultiZoneClient createMultiZoneClient() { File yamlFile
server_ip server_port ;fault_repetition ;fault_interval ;fault_duration 连接耗尽,客户端无法建立连接 server_ip;server_port ;concurrency 父主题: 故障模式库
重试时间间隔(ms) 尝试重连时间间隔。 输入值必须在2000到30000之间。 数据库访问超时时间(ms) 当“监控类型”配置为“MySQL/Oracle/PostgreSQL监控”和“MongoDB监控”时可见; 访问数据库超时时间,超过这个时间认为一次访问数据库失效。 输入值必须在3000到100000之间。
Collectors; @Slf4j @Service public class RedissonClientStorage { // dcs的客户端 private final MultiZoneClient client; // dc1和dc2的RedissonClient
Collectors; @Slf4j @Service public class RedissonClientStorage { // dcs的客户端 private final MultiZoneClient client; // dc1和dc2的RedissonClient
(可选)配置委托项目ID。 实例ID 配置RDS实例ID。 结果处理 配置重启失败后继续执行的操作。 fail_to_stop:表示失败停止。 fail_to_continue:表示失败继续。 跨账号执行RDS任务 当前账号通过“RDS实例重启”插件执行其他账号下的RDS任务时,需要提前创建委托和创建凭证,其步骤如下: