艾瑞
艾瑞
新闻资讯
中心动态 学习技巧
Nacos 2.2.0 正式发布!新特性很香!!
2022-12-19

10 月 28 日的时候,Nacos 2.2.0-BETA[1] 发布,这是一个预发布的 beta 版本。就在昨天,Nacos 2.2.0[2] 版本正式发布。

1.png

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 家族中的一员,由于其功能强大稳定且生态丰富,所以使用非常广泛。

2.png


下面这张图概括了 Nacos 的主要功能、生态以及优势:

3.jpg

Nacos 全景图所示,Nacos 无缝支持一些主流的开源生态,例如 Spring Cloud、Dubbo。

4.png


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 后健康检查不正确问题
  • 修复所有实例权重为零时,选择错误问题
  • 修复控制台配置查询按钮不自动适配浏览器宽度问题
  • 修复服务元数据清理逻辑导致的反注册失败问题

参考资料


[1]

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