检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用场景 本模块数据源创建支持single-read-write(单读写),local-read-single-write(本地读单写)2种模式,同时SDK内置实现了读写分离,可通过配置RANDOM(随机)或ROUND_ROBIN(轮询)负载均衡算法,搭配MAS可实现多活容灾;同
不支持的接口 SDK中部分jdbc相关接口不支持,详细见SDK中com.huawei.devspore.datasource.jdbc.unsupported包。下面列出了Connection、PreparedStatement、ResultSet中的部分不支持接口,如下: Connection接口。
实现多数据源管理的工具,具有以下特性: 多活容灾能力。 多活容灾能力是指在同城场景下实现多活故障自动切换,由SDK和MAS服务配合完成。 读写分离。 读写分离由SDK实现,支持随机、轮询的负载均衡算法。 自定义指定数据源进行数据访问。 用户也可以通过注解方式指定数据源以及主从数据库进行数据读写。
多活容灾能力是指在同城场景下实现多活故障自动切换,由SDK和MAS DCG服务配合完成。 MAS-Mongo-SDK支持单边读写和本地读单边写两种模式,默认为单边读写模式。 单边读写 本地读单边写 强制路由 读命令列表 父主题: MAS-Mongo-SDK使用手册
的活跃节点进行操作。(本地指的是当Mongo数据源和props中所配置的AZs为同一AZ时,此Mongo数据源被视为本地) 本地读单边写模式,配置文件中props.azs信息和sources.dcx.azs信息必须填写。 如果对接MAS平台,Mongo数据源所属AZ信息,以MAS
string datasource的key 主节点数据源。 loadBalance 否 string RANDOM、ROUND_ROBIN 读写分离负载均衡算法。 slaves 否 []string datasource的key 从节点数据源。 表5 PropertiesConfiguration数据结构说明
读写分离读数据源列表 空 - router.nodes.ds1.azs 该数据中心所属AZ信息 空 路由算法为本地读单边写,且未对接MAS平台时必填。 router.nodes配置罗列本项目中数据源路由节点,所以上表中“ds1”为数据源路由节点名称,如果有多组数据源,按照同样的格式配置多组即可。
s.builder().build()) 此session对应的Mongo数据源为当前active数据源。所以在使用session相关的操作时,请务必保证所有操作都能路由到active数据源。 在本地读单边写模式下,如下使用方式会抛出异常:java.lang.IllegalStateException:
RedisTemplate命令与DcsConnection接口对应关系 RedisTemplate命令对应DcsConnection接口,请参考下表。 表1 RedisTemplate和DcsConnection对应关系 RedisTemplate命令 DcsConnection方法
路由算法 选择路由算法,单边读写/单边写本地读。 数据源名称 自定义数据源名称。 数据库地址 数据库的连接地址。 Schema 需要连接的Schema名称。 负载均衡算法 选择负载均衡算法,随机/轮询。 添加Data Source 添加备数据源的配置信息。 数据库读写状态配置 目前应用需要接入Java
te同时使用时,以第一条sql选择的数据源为准。 后续sql,即使使用@DynamicRoute指定数据源,也不生效。同一个事务中,不允许访问不同的数据库。 如下,service层的updateUser方法,开启了事务,并且里面有两个接口,第一个userReopository2上
如上图,实线为DCG指示激活AZ1,虚线为DCG指示激活为AZ2。正常场景下,不管DCG激活哪个AZ,读操作都在本地进行;只有写操作是根据DCG激活指示,在相应的AZ进行。当某AZ本地数据库故障,不可读时,读操作根据DCG激活指示。 配置如下: # 基础信息 - 可选项, 当配置etcd后为必选
华为云同Region多AZ,APIG网关导流,数据层单实例或者双实例架构图中,哪个是用户提供的,哪个是MAS提供的? APIG Site、MAS(DB Monitor、DC Monitor)、MAS SDK、DRS(华为RDS到其他云的RDS的数据同步)等都是用华为的,而ELB和CDN等是客户自己的。
etcd配置,对接MAS服务关键配置,本地模式则无需配置 etcd: address: 127.0.0.2:2379,127.0.0.2:2379,127.0.0.2:2379 //etcd地址, 从MAS服务实例页面查询获取 apiVersion: v3 // etcd版本,v3
本地读单边写 这种路由算法场景下,读操作在本地进行,不受DCG指示的active影响。根据配置文件中的AZ信息判断本地属于哪个AZ,读操作时从本地AZ进行读取,写操作仍然根据DCG指示的active进行操作。 本地读单边写策略,配置文件中props.azs信息必须填写,根据实际所
结论:数据库ds1新增“SDK-test”用户名,SDK提供的服务正常运行。 SDK切换数据源测试 验证SDK提供的切换数据源功能,可在yaml直接配置当前活跃的数据源,使用之前已注册的“SDK-test”用户名进行登录验证。 切换数据源为ds2,切换配置如下: 切换后连接数据库为ds2,管理员表其对应用户数据如下:
MAS-DB-SDK版本变更 开发语言 版本及下载地址 变更描述 Java v 1.2.0-RELEASE 初次发布。 Java v 1.2.1-RELEASE 支持本地读单边写特性。 Java v 1.2.2-RELEASE 支持强制路由source设置为ACTIVE。 Java v 1.2.4-RELEASE
使用场景 单边读写 本地读单边写 强制路由 使用ShardingSphereDataSource场景 使用多数据源 父主题: MAS-DB-SDK使用手册
配置说明 数据库名 创建MongoDB监控配置的连接数据库名。 路由算法 选择路由算法,单边读写/单边写本地读。 AZs 被监控MongoDB部署的可用区。 数据源名称 自定义数据源名称。 数据库地址 MongoDB数据库的连接地址。 Schema 需要连接的Schema名称。 父主题:
etcd配置,对接MAS服务关键配置,本地模式则无需配置 etcd: address: 192.168.1.174:2379,192.168.1.60:2379,192.168.1.16:2379 apiVersion: v3