若依分离版整合多数据源——Phoenix+HBase
记录牢农若依分离版框架整合Phoenix+HBase一天的痛苦经历
1.在ruoyi-admin的pom.xml中引入依赖
<!--大数据-->
<dependency>
<groupId>org.apache.phoenix</groupId>
<artifactId>phoenix-queryserver-client</artifactId>
<version>5.0.0-HBase-2.0</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
2.将application-druid.yml的driverClassName配置注释掉,因为需要配置不同驱动类型的数据库连接
3.在master下添加driverClassName配置,并添加phoenix的连接
nebula:
enabled: true #开启从库使用
url: jdbc:phoenix:thin:url=http://ip:端口;serialization=PROTOBUF
#虽然没有用户名和密码,但是username和password不能少
username:
password:
driverClassName: org.apache.phoenix.queryserver.client.Driver
validationQuery: SELECT 1 #自定义的验证查询
4.由于若依默认设置了durid连接池在初始化数据源的时候会执行select * dual验证查询,但Phoenix数据库中不存在名为 DUAL 的表,所以需要修改一下Phoenix数据源的验证查询为其支持的语法
5.在ruoyi-common的DataSourceType枚举类添加数据源标识
6.修改ruoyi-framework的DruidConfig多数据源配置类,添加我们新增的数据源
7.(可选)修改ruoyi-framework下的DruidProperties,如果数据源已经有自定义的validationQuery,不要覆盖
8.数据源切换使用
只需要在需要使用不同数据源的mapper类/方法或者service类/方法上添加@DataSource注解即可切换数据源使用