
# 应用接入SDK
1. 下载SDK至本地。
   1. 登录[MAS服务控制台](https://console.huaweicloud.com/mas)，进入"帮助中心"页面。
   
   2. 在"SDK下载\>MySQL/Oracle/PostgreSQL"页签，选择Java语言最新版本SDK，单击"下载"。
    
2. 引用依赖。
   商城项目配置POM.xml文件（最外层POM文件），需要添加以下依赖：
   ```
   <dependency>
               <groupId>com.huaweicloud.devspore</groupId>
               <artifactId>spring-cloud-starter-huawei-devspore-datasource</artifactId>
               <version>1.2.9-RELEASE</version>
   </dependency>
   ```
   
3. 获取SDK接入配置。
   1. 登录[MAS服务控制台](https://support.huaweicloud.com/bestpractice-mas/mas_08_0028.html#mas_08_0028__li5927152211170)登录MAS控制台，在"多活管理"页面单击多活实例，进入多活实例控制台。
   
   2. 在"监控列表"页面，单击MySQL监控器左侧操作栏"更多"\>"SDK接入配置"，复制配置参数。
      图1复制配置参数   
      ![](https://support.huaweicloud.com/bestpractice-mas/zh-cn_image_0000001397156394.png "点击放大")
      ![](https://support.huaweicloud.com/bestpractice-mas/public_sys-resources/note_3.0-zh-cn.png)
      此处获取的yaml配置不会携带数据库用户名密码信息，在使用时，需要补充完全（与创建MySQL监控时数据中心1和数据中心2数据库用户名和密码对应），同时还需要保证ETCD地址的可用性，再添加至项目的yaml文件。
      
    
4. 创建多活数据源配置。 **SDK接入配置与已经创建的MySQL监控器依赖关系如下：**
   - appId为多活实例控制台中"组件列表"页的"组件ID"。
   
   - monitorId为多活实例控制台中"监控列表"页对应的"监控器ID"。
   
   - databaseName为Demo商城的业务数据库名称。
   
   - etcd相关信息请到实例控制台基本信息页的ETCD链接地址查询。
   
   - sources数据源信息为Demo商城的业务数据库litemall的连接信息。
   
   - router为监控器连接池配置的路由算法信息。
   
   
   获取SDK接入配置后，将相关信息添加完毕，找到项目对应的yaml文件，将相关信息添到商城项目的yaml文件，并且进行修改。由于商城后台项目自带springboot-dataSource，需要将其删除替换。
   修改后yaml文件如下所示：
   ```
   devspore:
     datasource:
       # 如果配置了etcd，props则必须配置
       props:
         version:    v1
         appId:    670ddad4-f831-46a6-96de-8f1af0a347ed
       # appId为多活实例控制台中“组件列表”页的“组件ID”
         monitorId:    d715fcc1-894e-4f3e-aaa9-bbe0835efdfe
       # monitorId为多活实例控制台中“监控列表”页对应的“监控器ID”
         databaseName:    litemall
       # databaseName为Demo商城的业务数据库名称
         decipherClassName:    com.huawei.devspore.mas.password.DefaultDecipher  # 加解密类，需要实现基类 com.huawei.devspore.mas.password.Decipher，默认值为com.huawei.devspore.mas.password.DefaultDecipher【如果MAS服务上配置了用户名和密码，且密码是加密的，需要自己实现该类解密密文】
         region:    az0
       # etcd配置，对接MAS服务关键配置，本地模式则无需配置
       etcd:
         address:    192.168.1.174:2379,192.168.1.60:2379,192.168.1.16:2379
         apiVersion:    v3
         username:    etcduser
         password:    **********    
       # etcd相关信息请到实例控制台基本信息页的ETCD链接地址自行查询
         httpsEnable:    true
         certificatePath: D:/2.cer/mas_cer/    # etcd证书路径，私钥请务必加密保存
       # 数据源配置 - 必选，下面配置Demo商城的业务数据库litemall的连接信息
       sources:
         ds1:
           driverClassName:    org.mariadb.jdbc.Driver  # 驱动名称，自定义
           jdbcUrl:    jdbc:mariadb://localhost:3306/litemall
           username:    litemall
           password:    **********    # 请务必进行加密处理
           type:    com.zaxxer.hikari.HikariDataSource  # 数据源类型，自定义，目前只支持，com.zaxxer.hikari.HikariDataSource 和 org.apache.commons.dbcp2.BasicDataSource
         ds2:
           driverClassName:    org.mariadb.jdbc.Driver
           jdbcUrl:    jdbc:mariadb://localhost:3306/litemall
           username:    litemall
           password:    **********    # 请务必进行加密处理
           type:    com.zaxxer.hikari.HikariDataSource
       # 路由配置 - 必选，路由算法配置，本实践配置为单边读写single-read-write，其他信息保持默认
       router:
         active:    dc1
         routeAlgorithm:    single-read-write
         nodes:
           dc1:
             master:    ds1
             azs:
             loadBalance: round_robin
             slaves :
           dc2:
             master:    ds2
             azs:
             loadBalance: round_robin
             slaves :
   ```
   
5. 重新部署商城应用，验证商城应用能否读取数据源数据。
   1. 使用管理员账号登录电商应用。
   
   2. 测试电商应用的相关数据是否能够正常创建和查询。
    
 
