【NACOS插件】使用官网插件更换NACOS数据库

说明

nacos 2.3.1默认支持mysql和derby数据库,如果想要支持其他数据库,可以通过使用插件方式实现。对于该插件的使用,官方说明文档较为粗略(不过也没问题,实际上整个过程就是很简单,只是使用者想复杂了),网上很多资料都是放弃使用官方插件,而是参考官网插件代码修改源码后打包。本文记录直接使用插件,不修改代码(pom依赖除外),实现nacos更换数据库为达梦的需求(切换其他数据库同理,目前插件支持的类型有:postgresql,oracle,dm)

插件参考资料

官方解答:nacos支持postgresql数据库吗?

步骤

下载源码

nacos2.3.1源码:nacos
datasource插件地址: nacos-datasource-plugin-ext

安装插件

插件目录结构如下,该项目有多个插件,现在我只需要nacos-datasource-plugin-ext中的nacos-dm-datasource-plugin-ext,直接删除pom中其他无关内容即可。
在这里插入图片描述

修改nacos-plugin-ext的pom如下:

    <modules>
        <module>nacos-datasource-plugin-ext</module>
    </modules>

修改nacos.version为指定版本,我这边为2.3.1:
在这里插入图片描述

修改nacos-datasource-plugin-ext的pom如下(nacos-datasource-plugin-ext-base工程为数据库插件操作的适配抽象,所有具体实现类都需要依赖这个base,所以需要包含):

    <modules>
        <module>nacos-datasource-plugin-ext-base</module>
        <module>nacos-dm-datasource-plugin-ext</module>
    </modules>

在顶层目录(nacos-plugin-ext)执行mvn clean install

在这里插入图片描述

引用插件

打开源码后,结构如下,修改nacos-all下的pom的dependencies加入(注意非dependencyManagement节点):

        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-dm-datasource-plugin-ext</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>

在这里插入图片描述
在根目录重新打包:

mvn -Prelease-nacos clean install -Dmaven.test.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Drat.skip=true -U

在这里插入图片描述
最终生成的文件:
在这里插入图片描述

替换docker配置及jar文件

将docker容器中的配置和jar文件映射到本地
在这里插入图片描述

修改application.properties如下(当然这里的配置也可以做成mysql那种通过环境变量传递的形式,本文仅测试,写死):

spring.sql.init.platform=dm
db.url.0=jdbc:dm://192.168.10.70:30236?schema=NACOS&compatibleMode=mysql&ignoreCase=true&ENCODING=utf-8
db.user.0=SYSDBA
db.password.0=SYSDBA001
db.pool.config.driverClassName=dm.jdbc.driver.DmDriver

在这里插入图片描述
最后利用docker-compose重新构建容器即可(重启前需手动在dameng数据库执行nacos对应的脚本,在nacos-dm-datasource-plugin-ext模块下有对应sql)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值