alibaba / nacos

an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.
https://nacos.io
Apache License 2.0
30.39k stars 12.87k forks source link

增加对postgresql数据库的支持 #534

Closed qdlake closed 4 years ago

qdlake commented 5 years ago

Is your feature request related to a problem? Please describe. 仅使用postgresql数据库,仅仅为了存储Nacos的配置信息,而再加入mysql数据库。

Describe the solution you'd like 修改需涉及跟涉及跟数据源及CRUD操作相关的类,并增加nacos-postgres.sql数据库脚本。

思路1:直接修改BasicDataSourceServiceImpl,根据url,自动判断是mysql或postgresql数据库;

思路2:增加一个新类,实现DataSourceService接口;并修改DynamicDataSource的getDataSource方法。

都需要涉及sql的兼容性修改、测试。

建议: 1、postgresql没有read-only模式,checkMasterWritable直接返回true;

2、postgresql10之后,直接支持generated by default as identity类型,暂时只支持10之后的版本;

3、derby数据库的schema.sql比nacos-mysql.sql多了几张app打头的表,暂时还不知道这几张表的作用?

4、将dbcp换成HikariCP或者Druid连接池?

Describe alternatives you've considered 是否还需要支持其他数据库,譬如:oracle?

Additional context 目前只是初步想法,欢迎大家提出建议。

xuechaos commented 5 years ago

@qdlake 👍 我觉得拓展存储是个好建议,现在的确有几个用户是有反应想用oracle。

qdlake commented 5 years ago

@TsingLiang @yanlinly @xuechaos 是否还需要增加一个类似于com.alibaba.nacos.naming.healthcheck.MysqlHealthCheckProcessor的健康检测处理器类?

TsingLiang commented 5 years ago

Multiple storage will certainly be supported later. We will discuss it later.

DemonJun commented 5 years ago

希望能添加PostgreSQL数据库支持 希望数据库连接池换成HikariCP,该数据库连接池较druid更轻量级;

kelvinji2009 commented 5 years ago

@TsingLiang Any update after half year?Thanks.

qmdx commented 5 years ago

@xuzhenen 建议抽象 DB 层接口方式提供更方便扩展,源码写死 mysql 不可取

chuntaojun commented 5 years ago

或许需要维护多种数据库的sql语句(某些sql语句涉及了数据库的方言),目前正在考虑直接将sql拎出代码层,使用mybatis进行多数据库支持

qmdx commented 5 years ago

@chuntaojun 抽象一层然后 orm 层可以插件化,默认一种实现可以考虑下 https://github.com/baomidou/mybatis-plus 目前已支持主流数据库适配

chuntaojun commented 5 years ago

大家使用的oracle数据库版本是多少

Liu-Junlin commented 5 years ago

大家使用的oracle数据库版本是多少

普遍10g+吧

KingZxx commented 5 years ago

作为微服务得核心基础设施,单纯依赖mysql真的不好,希望能支持更多得数据库

dudiao commented 5 years ago

希望支持更多得数据库,或者留出入口自己适配也行

Liu-Junlin commented 5 years ago

我的应用目前主要还是使用postgresql,目前为了nacos单独维护了一个mysql库

humbinal commented 4 years ago

支持postgresql的建议提了一两年了,很多人因为不支持其他数据库用不起来,postgresql、oracle、sqlserver这几个最流行的还是有必要支持的,不知道社区怎么计划的?

token01 commented 4 years ago

社区应该把计划提上日程

vnobo commented 4 years ago

这个是什么时候,去做呢,我觉得spring boot 里面对驱动判断,它自动选择dataSoure类型,这个可以参考.

505831001 commented 3 years ago

下载nacos 1.3.2或者nacos 1.4.1版本修改数据源为PostgreSQL,然后一键打包(mvn -Prelease-nacos -DskipTests clean install -U),再覆盖容器nacos-server.jar,通过k8s集群模板部署(nacos-0.1.2.tgz),由于修改过后的容器会被重置,只能docker restart nacos,然后将运行镜像打镜像包。欢迎评论……

lhaixiong commented 3 years ago

下载nacos 1.3.2或者nacos 1.4.1版本修改数据源为PostgreSQL,然后一键打包(mvn -Prelease-nacos -DskipTests clean install -U),再覆盖容器nacos-server.jar,通过k8s集群模板部署(nacos-0.1.2.tgz),由于修改过后的容器会被重置,只能docker restart nacos,然后将运行镜像打镜像包。欢迎评论……

大佬求分享博文 @505831001

LeeJEric commented 2 years ago

有打算支持postgreSQL吗?

duhongx commented 1 year ago

支持postgreSQL有计划么?

dylan-tao commented 1 year ago

支持postgreSQL有计划么?

目前我这边已经开源支持postgresql的nacos-2.2.0版本(已投产),可以直接食用:https://github.com/dylan-tao/nacos-gaussdb

idlesysman commented 8 months ago

玛雅,已经过去8年了

royalzzz commented 5 months ago

到此一游,为PG加油助威!🎉