检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
环境准备 在进行应用开发时,准备环境包括开发环境准备所示任务。 表1 开发环境准备 准备项 说明 准备操作系统 Windows系统,推荐使用Windows 7及以上版本。 安装Go 开发环境的基本配置。Go版本要求1.14.6及以上。 安装配置Goland 开发程序的工具。Goland使用11
概述 故障注入功能是在上述模块的补充功能,可在对应服务添加故障注入配置创建带有注入故障的实例,可注入带波动的延时故障和异常故障,进行相关业务场景的模拟。 具体操作请参考Mysql配置示例和Redis配置示例。 相关配置详见配置项说明和内置注入故障。 父主题: 故障注入
基础设施类故障 服务器硬件类 表1 服务器硬件类参数配置 故障类型 故障模式 设置参数 CPU CPU过载 usage 内存 内存过载 usage 磁盘 磁盘分区满 disk;usage 磁盘IO高 disk;usage 网卡 网卡down dev_name 网络通信类 表2 网络通信类参数配置
添加任意一台CCE集群中的主机节点即可。 表1 配置UniAgent主机 参数 配置说明 主机IP 请输入主机IP。 登录账号 说明: 请使用root用户。 请输入登录账号。 登录端口 请输入登录端口。 密码 说明: 只作为安装使用,不保存。 请输入密码。 连接测试结果 连接测试后显示结果。
single-read-async-double-write(单边读异步双写) 另起线程进行数据同步,不能保证异步写成功、不能保证两端数据的一致性。 图1 single-read-async-double-write部署图 读写指定异步双写,适用于读多写少场景,使用SDK同步两个
false redis: nearest: dc1 servers: dc1: // 和MAS服务监控页中的名称保持一致:dc1和dc2 hosts: xxx.xxx.xxx.xxx:xxxx password:
单击“添加主机信息”添加UniAgent主机,配置如下信息。 表1 配置UniAgent主机 参数 配置说明 主机IP 请输入主机IP。 登录账号 说明: 请使用root用户。 请输入登录账号。 登录端口 请输入登录端口。 密码 说明: 只作为安装使用,不保存。 请输入密码。 连接测试结果 连接测试后显示结果。
参数配置说明 全部配置 参数名称 是否必选 参数类型 取值范围 描述 devspore.css.etcd 否 参考MAS-DB-SDK - - devspore.css.prop 否 参考MAS-DB-SDK - - devspore.css.esservers 是 Map<String
开发流程 开发的流程如下所示: 版本获取及引入依赖。 通过go.mod引入需要的依赖,是使用MAS-GO-SDK的基础。 配置创建数据源。 通过配置数据源驱动信息,引入MAS-GO-SDK-Mysql创建数据源。 支持以代码方式添加配置信息或者从YAML文件读取配置信息。 按需引入数据源。
配置项说明 表1 配置参数详解 参数名称 是否必选 参数类型 取值范围 描述 props 否 PropertiesConfiguration 请参考PropertiesConfiguration数据结构说明。 MAS监控配置,配合etcd使用。 etcd 否 EtcdConfiguration
内置注入故障 带波动的延时故障 基于延时基数和抖动幅度创建带有波动的延时故障。具体触发要结合故障注入功能是否开启、注入故障概率、延时注入开关、延时故障生效概率决定。 异常故障 内置如下异常故障,结合故障注入功能是否开启、注入故障概率、异常注入开关、异常故障生效概率决定是否触发,触发故障为对应模块随机一种异常。
配置项说明 表1 InjectionProperties数据结构说明 参数名称 是否必选 参数类型 取值范围 描述 active 是 bool true/false 默认false 故障注入功能是否开启。 duration 是 int - 故障注入持续时间,单位:秒。 interval
如何选择组件版本 SpringBoot接入涉及组件版本参考。 表1 SpringBoot涉及组件版本 GroupId ArtifactId Version 备注 org.springframework.boot spring-boot-autoconfigure-processor
medium.4规格的机器可用。 the volumeType[SATA] is sellout in az[xx-xx-xx]:可用区没有可用的虚拟机资源。 上述报错都是因为创建多活实例时对应资源可用配额不足导致的,可以删除无用实例,以空出实例配额,或者申请扩大实例配额。 父主题: MAS使用相关问题
分布式锁场景最佳实践 分布式锁场景需根据所选取的路由模式来选择合适的策略。 路由模式为single-read-write, single-read-async-double-write时 由于读写都在同一边,分布式锁不受影响。 路由模式为local-read-single-wri
使用ShardingSphereDataSource场景 SDK还支持使用ShardingSphereDataSource,此时,需要修改yml配置,单独将sharding配置放在yml同级目录,并在yml中设置sharding配置文件名,示例如下: 引入依赖: <dependency>
事务中使用强制路由 SDK不支持分布式事务,事务与强制指定路由@DynamicRoute同时使用时,以第一条sql选择的数据源为准。 后续sql,即使使用@DynamicRoute指定数据源,也不生效。同一个事务中,不允许访问不同的数据库。 如下,service层的updateU
Redisson Lock Redisson是一个基于Redis的Java库,它提供了一系列的分布式对象和服务,其中包括分布式锁。 Redisson的分布式锁实现了可靠的分布式锁机制,可以在分布式环境下实现对共享资源的并发访问控制。 对接Redisson Lock命令参考如下。 import
非事务中使用强制路由 除了根据路由算法配置路由,SDK还支持通过注解@DynamicRoute强制指定路由,且相比路由算法,注解指定路由优先级更高。存在注解指定路由的场景下,优先根据注解指定进行路由。 注解@DynamicRoute指定路由分为两部分:source和hint,可单
删除监控 您可以删除不再使用的监控器,支持批量删除。 删除单个监控 登录MAS控制台,在“多活管理”页面单击实例,进入实例控制台。 在页面顶端导航栏选择“监控列表”。 单击监控所在行的“更多”>“删除”。 在弹窗中单击“确定”,完成删除操作。 若为API监控,则直接单击“删除”。