Linkis在springBoot实现分数据源分库分表的自动识别
时间: 2024-01-21 14:18:42 浏览: 83
springBoot 多数据源
Linkis是一个基于Spring Boot的开源分布式数据调度和治理平台,支持多种数据源和计算引擎。在Linkis中,实现分数据源分库分表的自动识别,需要进行以下配置:
1. 配置多个数据源和数据源信息
在application.yml文件中进行如下配置:
```
spring:
datasource:
master:
url: jdbc:mysql://xxx.xxx.xxx.xxx:3306/master_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
slave:
url: jdbc:mysql://xxx.xxx.xxx.xxx:3306/slave_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
```
2. 配置数据源路由
在Linkis中,通过配置数据源路由,实现对不同数据源的自动识别。可以在配置文件中添加如下配置:
```
linkis.datasource:
names: master,slave
type: com.alibaba.druid.pool.DruidDataSource
master:
url: jdbc:mysql://xxx.xxx.xxx.xxx:3306/master_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
slave:
url: jdbc:mysql://xxx.xxx.xxx.xxx:3306/slave_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
router:
type: com.webank.wedatasphere.linkis.datasource.routing.ha.HADataSourceRouter
ha:
master: master
slaves:
- slave
```
在以上配置中,配置了两个数据源:master和slave,同时配置了数据源路由的类型为HADataSourceRouter,即主从路由,根据请求自动切换到主库或从库。
3. 配置分表策略
在Linkis中,可以通过配置分表策略,实现对不同数据表的自动识别。可以在配置文件中添加如下配置:
```
linkis.datasource.routing.table:
user:
strategy:
type: com.webank.wedatasphere.linkis.datasource.routing.strategy.impl.UserNameRoutingStrategy
params:
tablePrefix: user_
tableSuffix: _2021
sources:
- master
- slave
```
在以上配置中,配置了针对user表的分表策略,使用了UserNameRoutingStrategy策略,根据用户名进行分表,并且配置了表前缀和表后缀,最终生成的表名为:user_{username}_2021。同时,配置了该表所属的数据源为master和slave。
通过以上配置,Linkis就可以自动识别不同数据源和不同数据表,并根据配置的策略进行自动路由和分表操作。
阅读全文