nacos 支持信创数据库 PostgreSQL

nacos 支持信创数据库 PostgreSQL

在这里插入图片描述
在这里插入图片描述

国产化信创浪潮袭来,作为SpringCloud生态圈首选的国产注册中心Nacos需要适配国产化数据库,Nacos官方仅提供了MySQL数据库支持,但这并不满足信创化的需求。

本文通过Nacos的插件化机制实现了PostgreSQL数据库适配,这里要说明的国产化众多数据库中均是基于PostgreSQL源码改造过来,比如人大金仓PG版,因此基于PostgreSQL数据库实现的Nacos持久化存储,是满足信创化需求的。

国内多个开源项目的方案基于Nacos的源码来源做了一些魔改,并通过二次打包实现改造版的Nacos,笔者认为该方式不利于后期维护,因为Nacos本身一直在持续迭代,这样就存在每次都需要同步源码,成本太高,放弃了这种做法。

本文使用Nacos官方包+PostgreSQL插件形式,对官方的源码不做任何侵入改造,仅维护插件,方便后期的持续更新。同时提供了物理裸机和容器两套环境下的部署指南。

资源说明

搜索研究了多个开源项目,经过代码改造、测试验证,将成果做了整理。

本文最后有资源下载链接。

通过这些资源,可直接使用支持PostgreSQL的Nacos到你的项目中。

资源清单目录如下:

- application.properties                     # nacos示例配置
- nacos-pgsql.sql                            # pgsql数据源的初始化sql
- v2.2
  - nacos-datasource-plugin-pgsql-2.2.0.jar  # 2.2版本的插件jar包
- v2.3
  - nacos-datasource-plugin-pgsql-2.3.0.jar  # 2.3版本的插件jar包
- docker
  - Dockerfile                               # 镜像构建文件
  - docker-startup.sh                        # 镜像构建需要的启动脚本
物理机部署

1、下载插件jar包,并放入plugins文件夹下

2、修改配置

#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=pgsql

### Count of DB:
db.num=1

### Connect URL of DB:
# 部署时请修改数据库服务器ip port 数据库名
db.url.0=jdbc:postgresql://127.0.0.1:5432/nacos?tcpKeepAlive=true&reWriteBatchedInserts=true&ApplicationName=nacos_java
# 部署时请修改数据库用户名
db.user.0=nacos
# 部署时请修改数据库密码
db.password.0=nacos@123
db.pool.config.driverClassName=org.postgresql.Driver

3、导入数据库,注意需要将当前会话的 search_path修改为public,否则会导致导入sql失败

#创建用户,建议单独创建一个用户
CREATE ROLE nacos WITH LOGIN PASSWORD 'nacos@123';
#创建数据库
CREATE DATABASE nacos WITH OWNER = nacos;
#修改nacos-pgsql.sql中设置模式的语句
SELECT pg_catalog.set_config('search_path', 'public', false);
#云盘中的nacos-pgsql.sql
psql -U postgres -d nacos -f ./nacos-pgsql.sql

4、启动nacos

windows上单机启动

cd nacos
bin\startup.cmd -m standalone

linux上单机启动

cd nacos/
./bin/startup.sh -m standalone
docker部署

基于dockerhub上官方的镜像,在此基础上叠加上插件和配置

dockerfile如下

FROM nacos/nacos-server:v2.3.1-slim

COPY nacos-datasource-plugin-pgsql-2.3.0.jar /home/nacos/plugins/

# 修改了脚本docker-startup.sh
# export CUSTOM_SEARCH_LOCATIONS=file:${BASE_DIR}/conf/,optional:file:${BASE_DIR}/conf/*/
# 启动时将外部配置文件映射到 /home/nacos/conf/pg/application.properties
COPY docker-startup.sh /home/nacos/bin/

RUN chmod +x /home/nacos/bin/docker-startup.sh

# tag nacos/nacos-server:v2.3.1-pg

docker启动示例

# 将修改好带pg数据库配置的application.properties放到当前目录下,通过卷映射到容器中
docker run -p 8848:8848 -p 8849:8849 -p 9848:9848 -v $PWD/application.properties:/home/nacos/conf/pg/application.properties -e MODE=standalone -d nacos/nacos-server:v2.3.1-pg

注意Nacos的3个端口必须保持固定的差值。port1,port2=port1+1,port3=port1+1000

资源链接如下:
链接:https://pan.baidu.com/s/1l4RoyWvnV_7SZQQMPw8Ppg?pwd=05kj
提取码:05kj

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

maxwell code

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

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

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

打赏作者

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

抵扣说明:

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

余额充值