应用接入SDK
- 下载SDK至本地。
- 登录MAS服务控制台,进入“帮助中心”页面。
- 在“SDK下载>MySQL/Oracle/PostgreSQL”页签,选择Java语言最新版本SDK,单击“下载”。
- 引用依赖。
- 获取SDK接入配置。
- 登录MAS服务控制台,在“多活管理”页面单击多活实例,进入多活实例控制台。
- 在“监控列表”页面,单击MySQL监控器左侧操作栏“更多”>“SDK接入配置”,复制配置参数。
图1 复制配置参数
此处获取的yaml配置不会携带数据库用户名密码信息,在使用时,需要补充完全(与创建MySQL监控时数据中心1和数据中心2数据库用户名和密码对应),同时还需要保证ETCD地址的可用性,再添加至项目的yaml文件。
- 创建多活数据源配置。
- 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 :
- 重新部署商城应用,验证商城应用能否读取数据源数据。
- 使用管理员账号登录电商应用。
- 测试电商应用的相关数据是否能够正常创建和查询。