【Nacos】Nacos 2.2.4支持pg数据库适配改造

Nacos 2.2.4支持postgresql数据库
本文基源码:扩展插件包
网上资料都有,还是个人爬坑补充异常处理记录,以便后续升级改造有漏洞修复

下载源码

https://github.com/alibaba/nacos/releases
在这里插入图片描述

添加依赖

  • 根pom添加pg依赖
<postgresql.version>42.5.1</postgresql.version>
 
 <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <version>${postgresql.version}</version>
</dependency>

在这里插入图片描述

  • config模块pom添加依赖
<dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
</dependency>
  • plugin模块

/plugin/datasource/src/main/resources/META-INF/services 下增加以下数据
com.alibaba.nacos.plugin.datasource.mapper.Mapper

com.alibaba.nacos.plugin.datasource.impl.postgresql.ConfigInfoAggrMapperByPostgreSql
com.alibaba.nacos.plugin.datasource.impl.postgresql.ConfigInfoBetaMapperByPostgreSql
com.alibaba.nacos.plugin.datasource.impl.postgresql.ConfigInfoMapperByPostgreSql
com.alibaba.nacos.plugin.datasource.impl.postgresql.ConfigInfoTagMapperByPostgreSql
com.alibaba.nacos.plugin.datasource.impl.postgresql.ConfigTagsRelationMapperByPostgreSql
com.alibaba.nacos.plugin.datasource.impl.postgresql.HistoryConfigInfoMapperByPostgreSql
com.alibaba.nacos.plugin.datasource.impl.postgresql.TenantInfoMapperByPostgreSql
com.alibaba.nacos.plugin.datasource.impl.postgresql.TenantCapacityMapperByPostgreSql
com.alibaba.nacos.plugin.datasource.impl.postgresql.GroupCapacityMapperByPostgreSql
  • plugin增加 postgresql文件夹

com.alibaba.nacos.plugin.datasource.impl 模块下

  • plugin增加postgresql常量
    com.alibaba.nacos.plugin.datasource.constants.DataSourceConstant.java
 public static final String POSTGRESQL = "postgresql";
  • 根据SPI机制进行代码扩展
ConfigInfoAggrMapperByPostgreSql
ConfigInfoBetaMapperByPostgreSql
ConfigInfoMapperByPostgreSql
ConfigInfoTagMapperByPostgreSql
ConfigTagsRelationMapperByPostgreSql
HistoryConfigInfoMapperByPostgreSql
TenantInfoMapperByPostgreSql
TenantCapacityMapperByPostgreSql
GroupCapacityMapperByPostgreSql

编译打包源码

mvn -Prelease-nacos clean package install -Dmaven.test.skip=true
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
# mvn Failed during checkstyle execution: There are errors reported by Checkstyle
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  -Dcheckstyle.skip

如果发现异常,单独排查处理(没有则忽略):
在这里插入图片描述
发现maven构建还是失败,如下:
在这里插入图片描述

问题:Cannot access mirror (https://maven.aliyun.com/nexus/content/groups/public) in offline mode and the artifact org.springframework.boot:spring-boot-maven-plugin:pom:2.6.14 has not been downloaded from it before.
解决:idea中maven项目下载依赖cannot resolve的问题
在这里插入图片描述

最终结果:
在这里插入图片描述
个人取名:2.2.4.IKPOEM传入私服中使用,和外部区分开来
在这里插入图片描述
在这里插入图片描述

配置文件修改

spring.datasource.platform=postgresql
db.num=1
db.url.0=jdbc:postgresql://127.0.0.1:5432/nacos_db?currentSchema=nacos_config&reWriteBatchedInserts=true&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
db.user.0=postgres
db.password.0=123456
# 注意添加配置需要
db.pool.config.driverClassName=org.postgresql.Driver

jdbc:postgresql://127.0.0.1:5432/nacos_config?currentSchema=public&tcpKeepAlive=true&reWriteBatchedInserts=true

运行nacos

jar包位置,生成的jar包在nacos\distribution\target目录下
在这里插入图片描述

  • 运行
 .\startup.cmd -m standalone

在这里插入图片描述
访问:http://localhost:8848/nacos nacos/nacos
在这里插入图片描述

运行调试

console: com.alibaba.nacos.Nacos
VM options: -Dnacos.standalone=true 单击版本
在这里插入图片描述

异常登记

情况说明:本人使用nacos-mysql脚本同步到pg库当中,部分表字段类型调整,自增调整为seq,还有时间问题调整等

在这里插入图片描述

处理序列

添加序列:tenant_info_id_seq等多个seq

CREATE SEQUENCE "nacos_config"."config_info_id_seq" 
INCREMENT 1
MINVALUE  1
MAXVALUE 9223372036854775807
START 1
CACHE 1;

SELECT setval('"nacos_config"."config_info_id_seq"', 1, false);

ALTER SEQUENCE "nacos_config"."config_info_id_seq"
OWNED BY "nacos_config"."config_info"."id";

ALTER SEQUENCE "nacos_config"."config_info_id_seq" OWNER TO "root";
-- nextval('nacos_config.config_info_id_seq'::regclass)


CREATE SEQUENCE "nacos_config"."tenant_capacity_id_seq" 
INCREMENT 1
MINVALUE  1
MAXVALUE 9223372036854775807
START 1
CACHE 1;

SELECT setval('"nacos_config"."tenant_capacity_id_seq"', 1, false);

ALTER SEQUENCE "nacos_config"."tenant_capacity_id_seq"
OWNED BY "nacos_config"."tenant_capacity"."id";

ALTER SEQUENCE "nacos_config"."tenant_capacity_id_seq" OWNER TO "root";
-- nextval('nacos_config.tenant_capacity_id_seq'::regclass)

CREATE SEQUENCE "nacos_config"."group_capacity_id_seq" 
INCREMENT 1
MINVALUE  1
MAXVALUE 9223372036854775807
START 1
CACHE 1;

SELECT setval('"nacos_config"."group_capacity_id_seq"', 1, false);

ALTER SEQUENCE "nacos_config"."group_capacity_id_seq"
OWNED BY "nacos_config"."group_capacity"."id";

ALTER SEQUENCE "nacos_config"."group_capacity_id_seq" OWNER TO "root";
-- nextval('nacos_config.group_capacity_id_seq'::regclass)


CREATE SEQUENCE "nacos_config"."his_config_info_nid_seq" 
INCREMENT 1
MINVALUE  1
MAXVALUE 9223372036854775807
START 1
CACHE 1;

SELECT setval('"nacos_config"."his_config_info_nid_seq"', 1, false);

ALTER SEQUENCE "nacos_config"."his_config_info_nid_seq"
OWNED BY "nacos_config"."his_config_info"."id";

ALTER SEQUENCE "nacos_config"."his_config_info_nid_seq" OWNER TO "root";
-- nextval('nacos_config.his_config_info_nid_seq'::regclass)

表添加nextval('nacos_config.tenant_info_id_seq'::regclass)
在这里插入图片描述

处理表时间

在这里插入图片描述

数据结构sql

pg

在这里插入图片描述

打包处理

Nacos Too many files with unapproved license:

[ERROR] Failed to execute goal org.apache.rat:apache-rat-plugin:0.12:check (default) on project nacos-datasource-plugin: Too many files with unapproved license: 1 See RAT report in: G:\nacos

原因:我添加了新的文档,代码路径 \plugin\datasource\target\rat.txt未知的Licenses,把新增的代码头上加上 Licenses 即可
在这里插入图片描述

打包私服

Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy

报错原因:意思是在pom文件中缺少distributionManagement标签,或者缺少-DaltDeployementRepositoty,说的是缺少deploy的地址,maven不知道你想要deploy到哪里,在pom文件中增加如下信息,就发布成功了.

浏览地址

Nacos 2.2.0支持postgresql数据库
修改nacos源码编译打包
idea中maven项目下载依赖cannot resolve的问题

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
要在 Windows 10 上安装 Nacos 2.2.4 服务,你可以按照以下步骤进行操作: 1. 下载 Nacos 2.2.4 压缩包:你可以从 Nacos 的官方 GitHub 仓库(https://github.com/alibaba/nacos/releases)下载 Nacos 2.2.4 的压缩包。找到 "nacos-server-2.2.4.zip" 文件并下载。 2. 解压缩压缩包:将下载的压缩包解压到你想要安装 Nacos 的目录中,例如 `E:\nacos-2.2.4`。 3. 修改配置文件:进入 `E:\nacos-2.2.4\nacos\conf` 目录,将 `application.properties` 文件复制一份并重命名为 `application.properties.example`。然后,打开 `application.properties` 文件,使用文本编辑器(例如 Notepad++)进行编辑。根据你的需求修改其中的配置项,如数据库连接、端口号等。 4. 启动 Nacos 服务:在命令提示符或 PowerShell 中,切换到 `E:\nacos-2.2.4\nacos\bin` 目录。然后执行以下命令启动 Nacos 服务: ``` startup.cmd -m standalone ``` 5. 等待启动:Nacos 服务启动后,你将在命令行中看到启动日志。等待片刻,直到看到类似 "Nacos started successfully in standalone mode." 的消息,表示 Nacos 服务已成功启动。 6. 访问 Nacos 控制台:在浏览器中访问 `http://localhost:8848/nacos`,将会打开 Nacos 控制台。你可以使用默认的管理员账号(用户名:nacos,密码:nacos)进行登录。 现在,你已经成功安装并启动了 Nacos 2.2.4 服务。你可以使用 Nacos 控制台来管理服务注册、配置管理和命名空间等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

掘金者说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值