检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
环境约束 安装的工具包括JDK、Maven、IDEA ,配置对应的环境变量,确保本地开发环境可用。 使用MAS-DB-SDK组件需具备一定的Java后端、持久层框架集成等知识。 准备项 说明 准备操作系统 Windows系统。Windows版本要求:Windows 7及以上版本。
环境约束 准备项 说明 准备操作系统 Windows系统。Windows版本要求:Windows 7及以上版本。 安装JDK 开发环境的基本配置。JDK版本要求: 1.8.0_262及以上版本。 安装Maven MAS-Redis-SDK使用Maven获取项目版本。Maven版本要求:3
builder().build()) 此session对应的Mongo数据源为当前active数据源。所以在使用session相关的操作时,请务必保证所有操作都能路由到active数据源。 在本地读单边写模式下,如下使用方式会抛出异常:java.lang.IllegalStateException:
使用场景 单边读写 本地读单边写 强制路由 使用ShardingSphereDataSource场景 使用多数据源 父主题: MAS-DB-SDK使用手册
使用场景 MAS-Mongo-SDK提供多活容灾能力。 多活容灾能力是指在同城场景下实现多活故障自动切换,由SDK和MAS DCG服务配合完成。 MAS-Mongo-SDK支持单边读写和本地读单边写两种模式,默认为单边读写模式。 单边读写 本地读单边写 强制路由 读命令列表 父主题:
使用场景 local-read-async-double-write(本地读异步双写) single-read-async-double-write(单边读异步双写) single-read-write(单边读写) 父主题: MAS-Redis-SDK使用手册
版本约束 MAS-Mongo-SDK对使用到的工具及相关组件的版本有所约束,如下表: 约束项 约束版本 JDK 1.8.0_262及以上版本 Maven 3.3.0及以上版本 MongoDB版本 4.4及以下版本 SDK组件依赖 见如何选择组件版本 spring-boot版本 2
使用场景 local-read-write(单边读写) 父主题: MAS-ElasticSearch-SDK使用手册
使用指南 原生DB beego-orm gorm 父主题: Mysql
使用指南 Mysql配置示例 Redis配置示例 父主题: 故障注入
支持带注入故障的实例创建,包含延时(波动)、预设异常的故障配置。 single-read-write 单读写类似于主备库,MAS监控各节点健康状态,active节点故障自动切换至其他节点,保证多活容灾能力,节点之间进行数据同步,保证数据一致。 读操作:同步路由到active的Redis。
} log.Println("INFO: init Redis successed.") } 在需要执行Redis操作的地方使用DevsporeClient执行Redis操作。 import ( "context" "demo/conf" "time"
创建带有注入故障的实例,进行相关业务场景的模拟,配置修改请参考故障注入Mysql配置示例。 该模块具有如下特性: 多活容灾能力。 多活容灾能力是指在同城场景下实现多活故障自动切换,由SDK和MAS服务配合完成。 读写分离。 读写分离由SDK实现,支持随机、轮询的负载均衡算法。 故障注入。
使用多数据源 上面的方式都是只引入一个数据源,在某些场景下,需要引入多个数据库,操作不同的数据库,此时,可以通过配置不同前缀来注入多个datasource的bean,方法如下: 引入依赖。 <dependency> <groupId>com.huaweicloud.devspore</groupId>
事务中使用强制路由 SDK不支持分布式事务,事务与强制指定路由@DynamicRoute同时使用时,以第一条sql选择的数据源为准,后续sql,即使使用@DynamicRoute指定数据源,也不生效。同一个事务中,不允许访问不同的数据库。 如下,service层的updateUs
master: ds2 上面配置,仅ds1使用了ShardingSphereDataSource,ds2仍使用HikariDataSource,如果ds2也需要使用ShardingSphereDataSource,将ds2的type和ymlFile同样配置即可。 shard
<init>(ZIIIIIIZ)V。 出现原因: SDK的使用的io.netty版本较新,而项目本身的io.netty包的版本为4.1.49相对旧,不能满足SDK的需求,故而报错。 解决方案: 对io.netty等相关的依赖包进行升级为4.1.69.Final。主要为netty
nt,也可一起组合使用。 source用于选择数据中心,可以填“dc1”/“dc2”/“ACTIVE”。填“dc1”时,则强制路由到dc1数据中心,不管此时的路由算法为哪种,也不管sql类型是读还是写;同理,填“dc2”时,强制路由到dc2数据中心;比较特殊的是“ACTIVE”,
强制路由 非事务中使用强制路由 事务中使用强制路由 父主题: 使用场景
pipeline功能使用示例 pipeline功能使用: 需要返回值示例: @Autowired private MultiZoneClient client; public void Demo() { client.executePipeline(pipeline ->