Nacos 2.2.0 正式发布!新特性很香!!
点击关注公众号,Java干货及时送达
10 月 28 日的时候,Nacos 2.2.0-BETA[1] 发布,这是一个预发布的 beta 版本。就在昨天,Nacos 2.2.0[2] 版本正式发布。
Nacos 2.2.0 版本是一个非常重要的版本,包含一些较大的改动,新增了很多实用的特性比如可以通过 SPI 机制注入多数据源实现插件。
开始介绍 Nacos 2.2.0 的新特性之前,简单介绍一下 Nacos ,以防有人不知道它是做什么的。
什么是 Nacos?
Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,主要功能是服务发现及管理、动态配置和动态 DNS。
Nacos 是 Spring Cloud Alibaba 家族中的一员,由于其功能强大稳定且生态丰富,所以使用非常广泛。
下面这张图概括了 Nacos 的主要功能、生态以及优势:
Nacos 全景图所示,Nacos 无缝支持一些主流的开源生态,例如 Spring Cloud、Dubbo。
Nacos 2.2.0 版本做了哪些改动?
第一个重要变化 是 2.2.0 版本将会删除旧的冗余代码,即 1.X 模式服务发现和双写相关代码。删除后,2.2.0 版本将无法从 Nacos 1.X 服务器升级,只能从至少 2.0.0 版本升级。此更改不会影响对 1.X 客户端请求的适配,用户仍然可以使用 1.X 客户端链接 2.2.0 版本服务端。
第二个重要变化 是添加了几个插件 :
数据源插件 :Nacos 从 2.2.0 版本开始,可通过 SPI 机制注入多数据源实现插件,并在引入对应数据源实现后,便可在 Nacos 启动时通过读取 application.properties
配置文件中spring.datasource.platform
配置项选择加载对应多数据源插件。关于多数据源插件如何实现以及如何使其生效,可以参考多数据源插件文档[3]。自定义环境变量插件 :Nacos 从 2.2.0 版本开始,可通过 SPI 机制注入自定义环境变量实现插件,在插件中自定义 Nacos 的配置,并按照您期望的方式进行处理(如数据库密码加密)。关于如何开发和使用自定义环境变量插件,可以参考自定义环境变量插件文档[4]。 连接限制插件 :Nacos 2.2.0 对旧的 limit 模块进行重构,扩展更多的能力,在高并发下保护 Nacos 服务器。
多提一嘴,鉴权插件是 2.1.0 版本添加的。Nacos 从 2.1.0 版本开始,支持通过 SPI 的方式注入鉴权相关插件,并在 application.properties 配置文件中选择某一种插件实现作为实际鉴权服务。
第三个重要变化 是增强了测试版本的 轨迹追踪插件和批量注册,以便使用起来更简单。Nacos 从 2.2.0 版本开始,可通过 SPI 机制注入轨迹追踪实现插件,在插件中订阅并处理追踪事件,并按照您期望的方式进行处理(如打日志,写入存储等)。关于如何开发和使用轨迹追踪插件,可以参考轨迹追踪插件文档[5]。
特性 :
支持批量注册和批量注销服务 为 Nacos 2.0 增加 v2 openAPI 增加数据源插件 增加数据跟踪插件 增加 Prometheus HTTP 服务发现(prometheus http sd) 增加 LDAP 身份验插件 增加 LDAP 身份认证
重构 :
删除 1.x 命名和冗余代码 优化选择器 使服务器在启动错误时自动停止 优化模糊查询 增强数据源插件 外部数据源增加 isEmpty
来检查和支撑外部配置NacosApplicationListener
方法修饰符改成默认值在返回列表配置页面后保留查询条件 在返回列表服务页面后保留查询条件 重构限流模块为插件
缺陷修复 :
修复 group_id 在不通表中不通的长度 修复无法创建 bean ldapAuthenticationProvider 修复 Prometheus 指标实例创建错误 修复验证插件中 token.secret.key base64 解码错误 修复命名空间列表问题 修复客户端工作线程空指针判断顺序 修复某些实例修改成 HTTP 后健康检查不正确问题 修复所有实例权重为零时,选择错误问题 修复控制台配置查询按钮不自动适配浏览器宽度问题 修复服务元数据清理逻辑导致的反注册失败问题
参考资料
Nacos 2.2.0-BETA: https://github.com/alibaba/nacos/releases/tag/2.2.0-BETA
[2]Nacos 2.2.0: https://github.com/alibaba/nacos/releases/tag/2.2.0
[3]多数据源插件文档: https://nacos.io/zh-cn/docs/v2/plugin/datasource-plugin.html
[4]自定义环境变量插件文档: https://nacos.io/zh-cn/docs/v2/plugin/custom-environment-plugin.html
[5]轨迹追踪插件文档: https://nacos.io/zh-cn/docs/v2/plugin/trace-plugin.html