Nacos: 增加对postgresql数据库的支持

Created on 28 Dec 2018  ·  16Comments  ·  Source: alibaba/nacos

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
目前只是初步想法,欢迎大家提出建议。

kinfeature

Most helpful comment

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

All 16 comments

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

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

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

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

@TsingLiang Any update after half year?Thanks.

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

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

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

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

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

普遍10g+吧

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

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

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

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

社区应该把计划提上日程

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

Was this page helpful?
0 / 5 - 0 ratings