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