开发简介
本文主要描述如何使用MAS-DB-SDK在多活容灾场景下对涉及配置多数据源服务进行开发,结合样例讲解MAS-DB-SDK在开发过程中如何使用。
本文假设您已经具备如下开发能力:
- 熟悉Java语言,并有Java程序开发经验。
- 熟悉Maven。
- 熟悉服务配置数据源方式。
MAS-DB-SDK
MAS-DB-SDK是一个DataSource的实现,可替代spring-boot-starter-jdbc为Spring注入一个DataSource对象,通过与MAS服务对接从而实现多数据源管理的工具,具有以下特性:
- 多活容灾能力。
- 读写分离。
- 自定义指定数据源进行数据访问。
用户也可以通过注解方式指定数据源以及主从数据库进行数据读写。
注解中source是指定选择哪个节点的数据源,从YAML配置中的router.nodes中选取,如果不设置,请使用当前DCG仲裁的数据中心(MAS平台上激活的数据中心,如果未对接MAS平台,则选取本地配置中的active,即yaml配置中的router.active)。
DCG为多活实例的仲裁中心,提供端到端(流量-应用-数据)仲裁和统一多活切换管控能力。
注解中的HintType用于查询时指定主从数据库,适用于读写分离场景,当前支持的配置值有:HintType.READMASTER(从master库读取)、HintType.READSLAVE(从slave库读取)、HintType.NONE(不指定),不指定时,默认从slave库读取。HintType只针对读操作有效,写操作HintType无效。
SDK本身不支持数据源间的数据同步,数据源同步需要依赖DRS服务。
SDK不支持分布式事务,同一个事务处理过程中,不支持切换数据库。