Nacos2.2版本发布了,我为其贡献了几行代码并适配了PostgreSQL插件

目录

一、背景

二、个人贡献

三、Nacos使用适配的PostgreSQL插件

3.1、插件源码工程项目结构:

3.2、打包加载插件

3.3、修改配置文件为PostgreSQL连接字符串

3.4、导入数据库脚本文件

四、总结


一、背景

Nacos 是 Dynamic Naming and Configuration-Service 的首字母简称,定位于一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos的开源社区目前应该是很活跃了,2022年12月14日,官方发布了Nacos2.2的正式版,也是目前最新且最稳定的版本了,估计会代替2.1用一段时间了,在该版本中添加了数个新的插件支持,例如 数据源插件、自定义环境变量插件 等等,比如用数据源插件扩展接口,开发者可实现配置中心数据库存储的适配;比如用自定义环境变量插件接口,允许通过插件的方式对nacos服务端启动时的配置进行特殊处理,比如可以配置数据库密码为密文,在插件中进行解密,以此来支持配置加密数据库密码以及后续可能有的其他关于配置特殊处理的需求。

2.2版本个人有幸参与其开源贡献,并提交了几个简单的Pull Request,去减少下之前代码中一些固定写死的内容。数据源插件改造适配的工作核心开发者主要为社区的某位黄同学和李老师。

二、个人贡献

目前个人为Nacos提交的PR记录为9个,虽然不是核心改动,但是至少是踏进了开源社区的大门,提交记录截图如下,标红框的为本次中一些写死内容的判断更改:

 之前的版本中,Nacos仅支持MySQL、Derby作为底层配置中的数据存储,2.2版本开始,提供了数据库插件扩展接口,允许开发者自定义开发适配数据库插件。目前我已经基于Nacos2.2的最新代码分支,进行了简单的PostgreSQL数据库的适配,在之前8月份的时候,个人为2.1.0版本适配了下PostgreSQL、Oracle、达梦等数据库,虽然目前可能存在一些未测试到的问题,但是希望大家一起参与测试和贡献,和大家一些修复和优化,提升自己对Nacos的认知。

访问我的Github主页获得Nacos2.2的PostgreSQL数据库适配的项目代码,可自行打包编译。

Nacos2.2 PostgreSQL适配插件地址:

https://github.com/wuchubuzai2018/nacos-datasource-extend-plugins

Nacos2.1 Nacos多数据源适配项目(支持Oracle、PostgreSQL、达梦),目前持续发现测试问题,并进行修复中,感兴趣的一起来优化和修复哦:

https://github.com/wuchubuzai2018/nacos-multidatasource

三、Nacos使用适配的PostgreSQL插件

Nacos2.2提供了插件扩展点让开发者适配,个人基于扩展口,进行了抽象,封装出公共的数据库方言类,对于一些类似的数据库,可以继承相关方言即可。这里介绍下个人开发的PostgreSQL数据库插件的说明:

3.1、插件源码工程项目结构:

下载源码工程,结构如下:

nacos-datasource-plugin-ext工程主目录

----nacos-datasource-plugin-ext-base工程设计为数据库插件操作的适配抽象。

----nacos-all-datasource-plugin-ext工程计划可打包所有适配的数据库插件

----nacos-postgresql-datasource-plugin-ext工程可打包适配Postgresql的数据库插件

3.2、打包加载插件

下载当前插件项目源码,打包为jar包,将该jar文件放到某个目录中,然后在startup.sh文件中,使用Nacos的loader.path机制指定该插件的路径,可修改startup.sh中的loader.path参数的位置进行指定,这样就会加载我们的jar包文件。

3.3、修改配置文件为PostgreSQL连接字符串

在application.properties文件中声明postgresql的配置信息:

spring.datasource.platform=postgresql
db.url.0=jdbc:postgresql://127.0.0.1:5432/nacos?tcpKeepAlive=true&reWriteBatchedInserts=true&ApplicationName=nacos_java
db.user=nacos
db.password=nacos
db.pool.config.driverClassName=org.postgresql.Driver

注意:这里需要配置属性db.pool.config.driverClassName,默认如果不传递的则是MySQL的驱动路径,这里的简单判断逻辑也是我提交的PR。

3.4、导入数据库脚本文件

导入nacos-postgresql的脚本文件,脚本文件在nacos-postgresql-datasource-plugin-ext/src/main/resources/schema文件夹下面.

上面操作完成后,启动Nacos即可,如果在启动的过程中,出现no DataSource Set之类的错误,基本就是数据库链接参数的问题,自己可以进行相关的排查操作。

四、总结

Nacos的源码是很值得我们程序员去学习的,因为它比较像是一个业务功能类的中间件系统,学习大厂程序员的开发规范和设计思想,且内部用到了大量的并发编程的知识点,也是很有帮助的。

Nacos 是阿里巴巴微服务领域开源项目的活跃度排行第一,也得益于开源协作模式,并且在 Nacos 中有大量国内外知名公司的核心贡献者,其中也包含就职在腾讯、华为、小米等等知名企业的同学,也正是社区整体的贡献者和用户在帮助 Nacos 成长,让 Nacos 逐步完善生态,支持几乎所有主流语言,整合更多开源生态,也正是用户和社区贡献者让 Nacos 为企业数字化转型首选产品。

感兴趣的可以关注我,后续看看再分享开发和使用该数据源插件的一些细节性问题。

本文首发于我的微信公众平台,感兴趣的可以关注我《无处不在的技术》,一起交流。

根据最近刚发布的《2022 中国开源发展蓝皮书》报告中显示,Github 中国项目活跃度 TOP 20,Nacos 排名全国第六,作为基础类型云原生中间件,能有如此活跃度是非常不容易的。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Nacos 2.2版本添加了对PostgreSQL数据库插件支持Nacos是一个用于配置管理和服务发现的开源项目,可以轻松管理分布式系统的动态配置和服务实例。通过插件形式支持数据库,可以使NacosPostgreSQL集成,实现更多的数据存储和管理选项。 使用Nacos的PGSQL插件,可以将Nacos的配置信息存储在PostgreSQL数据库中。这意味着可以使用PostgreSQL作为Nacos的配置存储库,而不是默认的文件存储方式。通过使用PGSQL插件,可以获得更高的数据可靠性和持久性,从而提高配置的安全性和稳定性。 使用Nacos的PGSQL插件,需要在Nacos的配置文件中进行相应的配置。首先,需要将配置存储方式设置为PGSQL,在配置文件中指定PostgreSQL数据库的连接信息,包括数据库地址、端口、用户名、密码等。然后,Nacos会将配置信息存储在PostgreSQL数据库中,可以通过SQL语句对配置进行增删改查操作。 使用PGSQL插件后,可以更好地支持大规模的分布式系统和高并发的访问请求。PostgreSQL作为一种强大的关系型数据库,可以提供更好的性能和稳定性,同时支持事务和并发控制等高级功能。 总之,Nacos 2.2版本的PGSQL插件为用户提供了更多的数据存储和管理选项,通过与PostgreSQL集成,可以实现配置信息的存储在数据库中,提高配置的可靠性和持久性,更好地支持大规模分布式系统的管理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值