检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
读写分离 场景四: 如上图,实线为DCG指示激活AZ1,虚线为DCG指示激活为AZ2。跟场景三不同之处在于,场景四中存在从库,进行读写分离,写操作在主库,读操作在从库进行。 配置如下: # 基础信息 - 可选项, 当配置etcd后为必选 props: version: v1
无从库 场景三: 如上图,实线为DCG指示激活AZ1,虚线为DCG指示激活为AZ2。正常场景下,不管DCG激活哪个AZ,读操作都在本地进行;只有写操作是根据DCG激活指示,在相应的AZ进行。当某AZ本地数据库故障,不可读时,读操作根据DCG激活指示。 配置如下: # 基础信息 -
) single-read-write场景具有以下两个特点: 读操作:同步路由到指定active的elasticsearch;写操作:同步路由到指定active的elasticsearch。 支持MAS动态切换激活数据源。 父主题: 使用场景
应用场景 随着业务的发展,系统容量、可靠性、商务因素等方面都会逐步给业务架构带来挑战。MAS应用场景包括: 场景一:同城灾备 适用于容灾可用性要求达到99.9%,业务分布在同一个地域,要求支持同城跨AZ的应用和数据灾备场景。 场景二:同城双活 适用于容灾可用性要求达到99.95%,要求业务双活的容灾场景。
另起线程进行数据同步,不能保证异步写成功、不能保证两端数据的一致性。 图1 local-read-async-double-write部署图 读写本地异步写远端,更适用于读多写少场景,使用SDK同步两个Redis,一条写命令会先进行本地Redis的执行,成功后,异步写到远端。 本地读异步双写场景具体操作: 对于用户,不感知多个Redis。
e(本地读单边写) 本地读单边写,适用于读多写少场景,读流量很大,对一致性不敏感的场景: 对于用户,不感知多个Redis。 对于SDK 读操作:同步路由到local Redis。 写操作:同步路由到active Redis。 此场景下Redis之间依赖同步服务相互同步。 图1 l
读操作:同步路由到指定的Redis。 写操作:同步路由到指定的Redis,同时异步发送到远端Redis。 此场景下可切换指定的Redis。 当不同实例内SDK操作同一个Redis key时,不能保证两个Redis的一致性。 当SDK发生Redis切换时,切换前产生的异步双写命令和切换
客户各场景替换方案 Jedis、Lettuce spring-boot-data-redis ShedLock Redisson Lock 自定义DcsConnection 父主题: MAS-Redis-SDK使用手册
分布式锁场景最佳实践 分布式锁场景需根据所选取的路由模式来选择合适的策略。 路由模式为single-read-write, single-read-async-double-write时 由于读写都在同一边,分布式锁不受影响。 路由模式为local-read-single-wri
ShedLock ShedLock是一个用于分布式任务调度的开源库。 它提供了一种简单而可靠的方式来确保在分布式环境中只有一个节点执行指定的任务。 对接ShedLock命令参考如下。 import com.huawei.devspore.mas.redis.core.MultiZoneClient;
Jedis、Lettuce Jedis是一个流行的Java客户端库,用于与Redis数据库进行交互。 Lettuce 是一个可伸缩线程安全的Redis客户端,多个线程可以共享同一个 RedisConnection。 直接替换客户端命令参考如下。 import com.huawei
自定义DcsConnection 使用场景:使用RedisTemplate命令时,DcsConnection中的接口没有覆盖到的情况,可以自定义扩展DcsConnection。 自定义DcsConnection。 type选择为normal时使用。 import com.huawei
Redisson Lock Redisson是一个基于Redis的Java库,它提供了一系列的分布式对象和服务,其中包括分布式锁。 Redisson的分布式锁实现了可靠的分布式锁机制,可以在分布式环境下实现对共享资源的并发访问控制。 对接Redisson Lock命令参考如下。 import
RedisTemplate RedisTemplate是Spring Data Redis提供的一个用于操作Redis的模板类。 它封装了对Redis的常见操作,如存储、读取、删除等,简化了与Redis交互的过程。 对接RedisTemplate命令参考如下。 import com.huawei
builder().build()) 此session对应的Mongo数据源为当前active数据源。所以在使用session相关的操作时,请务必保证所有操作都能路由到active数据源。 在本地读单边写模式下,如下使用方式会抛出异常:java.lang.IllegalStateException:
使用指南 原生DB beego-orm gorm 父主题: Mysql
使用指南 Mysql配置示例 Redis配置示例 父主题: 故障注入
开通的功能模块删除时失败是什么原因? 当开通的功能模块下存在依赖的命名空间,无法删除该功能模块。比如命名空间下已经勾选了某个功能点,此时需要编辑命名空间,删除掉已勾选的功能点,然后才能在“开通功能模块”页面删除对应的功能点。 父主题: MAS使用相关问题
创建故障场景 故障场景库按照不同业务场景提供多故障编排的模板。 创建故障场景 登录MAS控制台。 单击“混沌工程>故障场景库”,进入“故障场景库”页面。 单击“创建故障场景”按钮,填写基本信息。 表1 基本信息配置说明 参数 配置说明 名称 输入故障场景名称。 标签 选择故障场景标签,最多支持4个标签。可选如下标签:
} log.Println("INFO: init redis successed.") } 在需要执行Redis操作的地方使用DevsporeClient执行Redis操作。 import ( "context" "demo/conf" "time"