一、替换MySQL为达梦数据库
本文为作者在进行国产化适配期间的查阅资料时的笔记,经验证基本无误可行。- 下载nacos源码,源码可以从GitHub或者Gitee上下载,建议使用Gitee,GitHub由于服务器在国外,下载速度较慢。
GitHub下载地址:https://github.com/alibaba/nacos/releases/tag/2.1.2
Gitee下载地址:https://gitee.com/mirrors/Nacos/tree/2.1.2 - 将源码导入IntelliJ IDEA中,选择好maven配置和jdk版本等待项目加载完成
- 安装protobuf插件, protocal Buffers(简称protobuf)是谷歌的一项技术,用于结构化的数据序列化、反序列化,常用于RPC 系统 和持续数据存储系统。
- 使用Maven编译项目源码
- 引入达梦数据库驱动,这里注意修改三个pom文件
- 修改父工程下的pom文件,在
<dependencyManagement></dependencyManagement>
标签中注释掉MySQL的驱动依赖,加入达梦数据库驱动依赖,版本我们选择8.1.1.193,
- 修改naming模块下的pom文件,注释掉MySQL的驱动依赖,加入达梦数据库驱动依赖,版本自动从父工程继承,Maven父子继承关系不明白的可以看我的另一篇博文:深入理解微服务Maven父子项目构造以及项目打包部署
- 修改config模块下的pom文件,注释掉MySQL的驱动依赖,加入达梦数据库驱动依赖
- 修改console模块下的application.properties文件,更换掉mysql的配置,表空间名,用户名,密码根据自己数据库情况替换即可。console模块是整个nacos的启动入口
#*************** Config Module Related Configurations ***************#
### If use DM as datasource:
spring.datasource.platform=dm
### Count of DB:
db.num=1
db.jdbcDriverName=dm.jdbc.driver.DmDriver
### Connect URL of DB:
db.url.0=jdbc:dm://localhost:5236/xxx?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
db.user.0=xxx
db.password.0=xxx
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 修改distribution模块下的application.properties文件,修改方式和console模块一样。这个配置就是打包完成后的配置文件,因此,也需要修改。同时,启动脚本也在bin目录下。
- 修改 nacos-config模块下的com.alibaba.nacos.config.server.service.datasource.ExternalDataSourceProperties.java文件,①增加jdbcDriverName字段,其值可以通过配置文件application.properties获取;②poolProperties.setDriverClassName(jdbcDriverName);在该处替换JDBC_DRIVER_NAME为jdbcDriverName
完整的代码如下:
/*
* Copyright 1999-2018 Alibaba Group Holding Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12