更新时间:2024-10-23 GMT+08:00
Spring项目接入MAS-DB-SDK
- 引入MAS-DB-SDK组件坐标,下面version版本为最新版本,依赖组件版本参考如何选择组件版本。
<dependency> <groupId>com.huaweicloud.devspore</groupId> <artifactId>devspore-datasource</artifactId> <version>1.2.1-RELEASE</version> </dependency>
- 根据本项目配置项选其中一个数据连接池坐标。
<dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>4.0.3</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> <version>2.8.0</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.6</version> </dependency>
- 增加一个配置yml或properties配置文件,引入MAS-DB-SDK配置项。
- 下文中配置项的格式为yaml文件,如果配置文件为properties格式,需自行修改格式。
- MAS-DB-SDK配置项分为4部分:props配置、etcd配置、sources数据源配置、router路由配置。
- 如果使用MAS服务,props配置、etcd配置则必须要配置,sources数据源配置需要与MAS服务中连接池中的命名一致。如果不对接MAS服务,props配置、etcd配置无需配置,sources数据源配置本地所用数据库即可。
- 下列场景中的配置都包含了props、etcd的配置,配置项的具体值含义参考配置项详细信息列表。
- MAS-DB-SDK配置示例,这里的配置只作为一个格式的展示,具体场景的具体配置参考章节配置说明。
props: version: v1 appId: xxx monitorId: xxx databaseName: xxx decipherClassName: xxx.xxx.xxx etcd: address: 127.0.0.2:2379,127.0.0.2:2379,127.0.0.2:2379 apiVersion: v3 username: etcduser password: etcdpwd httpsEnable: false sources: ds1: driverClassName: com.mysql.jdbc.Driver jdbcUrl: jdbc:mysql://127.0.0.1:3306/ds0 username: datasourceuser password: datasourcepwd type: com.zaxxer.hikari.HikariDataSource props: connection-timeout: 1000 validation-timeout: 1000 ds1-slave0: driverClassName: com.mysql.jdbc.Driver jdbcUrl: jdbc:mysql://127.0.0.1:3306/ds0_slave0 username: datasourceuser password: datasourcepwd type: com.zaxxer.hikari.HikariDataSource ds1-slave1: driverClassName: com.mysql.jdbc.Driver jdbcUrl: jdbc:mysql://127.0.0.1:3306/ds0_slave1 username: datasourceuser password: datasourcepwd type: com.zaxxer.hikari.HikariDataSource ds2: driverClassName: com.mysql.jdbc.Driver jdbcUrl: jdbc:mysql://127.0.0.1:3306/ds1 username: datasourceuser password: datasourcepwd type: com.zaxxer.hikari.HikariDataSource ds2-slave0: driverClassName: com.mysql.jdbc.Driver jdbcUrl: jdbc:mysql://127.0.0.1:3306/ds1_slave0 username: datasourceuser password: datasourcepwd type: com.zaxxer.hikari.HikariDataSource ds2-slave1: driverClassName: com.mysql.jdbc.Driver jdbcUrl: jdbc:mysql://127.0.0.1:3306/ds1_slave1 username: datasourceuser password: datasourcepwd type: com.zaxxer.hikari.HikariDataSource router: active: dc1 routeAlgorithm: single-read-write nodes: dc1: master: ds1 loadBalance: ROUND_ROBIN slaves: - ds1-slave0 - ds1-slave1 dc2: master: ds2 loadBalance: round_robin slaves: - ds2-slave0 - ds2-slave1
- 创建DataSource的Bean。
@Bean public DataSource dataSource() { DataSource clusterDataSource= YamlClusterDataSourceFactory.createDataSource("D:\Coral\Mas\TestService\src\main\resources\devspore-datasource.yml"); return clusterDataSource; }
- (可选)使用MAS-DB-SDK提供注解在类级别、方法级别指定数据源参考4。
父主题: 接入指南