nacos默认只支持mysql数据库,要适配oracle数据源,必须得修改源码后再编译部署
一.源码获取
下载nacos: link源码,下载完成之后将分支切换到 feature_multiple_datasource_support
二. jar包引入及更换
由于此分支支持oracle12c,需要更换驱动包版本
1.nacos-all 下pom文件修改
<properties>
...
<!-- 移除ojdbc8依赖版本 -->
<!-- <ojdbc.version>19.3.0.0</ojdbc.version>-->
<!-- 更改oracle版本为ojdbc7-->
<ojdbc.version>12.1.0.1.0</ojdbc.version>
...
</properties>
<!-- 管理依赖版本号,子项目不会默认依赖 -->
<dependencyManagement>
<dependencies>
...
<!-- oracle包 -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>${ojdbc.version}</version>
</dependency>
...
<!--移除ojdbc8依赖版本-->
<!-- <dependency>-->
<!-- <groupId>com.oracle.ojdbc</groupId>-->
<!-- <artifactId>ojdbc8</artifactId>-->
<!-- <version>${ojdbc.version}</version>-->
<!-- </dependency>-->
...
</dependencies>
</dependencyManagement>
2.nacos-config的pom文件增加引入需要支持的数据库驱动,并取消oracle高版本驱动引入
<!-- <dependency>-->
<!-- <groupId>com.oracle.ojdbc</groupId>-->
<!-- <artifactId>ojdbc8</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
</dependency>
三.对数据库映射实体的主键逻辑修改【需要配合后续的序列语句使用】
因为mysql使用的是自增序列,oracle11g并不支持,所以在使用jpa时需要指定主键及使用的索引的名字,需要对实体类进行修改
1. nacos-config下
com.alibaba.nacos.config.server.modules.entity 这里只举一个示例,蓝色部分都是有修改的
需要注意的是PermissionsEntity类的resource 字段,因为是oracle数据库关键字,所有在建表语句(下载建表语句)中修改成resources ,需要在对应字段修改下
/**
* resource.
*/
@Column(name = "resources")
private String resource;
四.修改nacos-console配置文件application.properties
# oracle数据库配置
nacos.datasource.type=ORACLE
nacos.datasource.relational.dsList[0].url=jdbc:oracle:thin:@xxx:1521:orcl
nacos.datasource.relational.dsList[0].username=xxx
nacos.datasource.relational.dsList[0].password=xxx
nacos.datasource.relational.dsList[0].driver-class-name=oracle.jdbc.driver.OracleDriver
nacos.datasource.relational.dsList[0].hikari.connection-timeout=10000
nacos.datasource.relational.dsList[0].hikari.idle-timeout=120000
nacos.datasource.relational.dsList[0].hikari.max-lifetime=240000
nacos.datasource.relational.dsList[0].hikari.maximum-pool-size=20
nacos.datasource.relational.dsList[0].hikari.data-source-properties.cachePrepStmts=true
nacos.datasource.relational.dsList[0].hikari.data-source-properties.prepStmtCacheSize=250
nacos.datasource.relational.dsList[0].hikari.data-source-properties.prepStmtCacheSqlLimit=2048
nacos.datasource.relational.dsList[0].hikari.connection-test-query=SELECT 1 FROM dual
五.idea启动单机nacos进行调试
nacos-console模块的Nacos启动类 单机模式启动,环境变量-Dnacos.standalone=true
六.启动失败,找不到符号
如果报错找不到符号com.alibaba.nacos.consistency.entity 最简单的办法就是执行 mvn compile ,原因是这个包目录是由protobuf在编译时自动生成 重新启动即可
七.访问页面,localhost:8848/nacos 用户/密码:nacos/nacos
八.打包发布
进行打包发布,在nacos-all 目录下执行cmd命令
mvn -Prelease-nacos -Dmaven.test.skip=true -Dpmd.skip=true -Drat.skip=true -Dcheckstyle.skip=true clean install -U
最后在distributioni目录下的target就会出现压缩文件了,这样就相当于从nacos官网直接下载的压缩包,具体nacos配置可以自行完成。
|