MSE Nacos SDK的应用和Nacos SDK限制使用版本

MSE Nacos SDK是微服务架构中的关键组件,用于提供高效、灵活的服务注册与发现能力。本文将介绍如何根据技术栈和框架选择合适的SDK版本,避开限制使用的版本。

MSE Nacos SDK的应用

MSE Nacos支持多种编程语言和框架的集成,以适应不同的微服务系统和业务场景。您可根据所需的技术栈和选用的框架,选择适合您的最佳实践。

在微服务系统中,如果您业务使用的技术栈是Java

如果您业务使用的技术栈是Golang

如果您业务使用的技术栈是Node.js

  • 原生SDK:Nacos提供Node.js的连接方式,详情请参见示例Nacos-SDK-Nodejs实现服务注册与发现。

如果您业务使用的技术栈是Python

另外,MSE Nacos已全面融入服务网格Istio的生态体系,为开发者在云原生场景下的使用提供便利,Nacos支持以MCP标准接入,详情请参见创建服务来源实现Nacos与服务网格的集成。

Nacos SDK限制使用版本

为了微服务系统的稳定性,建议您避免使用的Nacos SDK限制使用版本。本文给出了限制使用的版本及原因和推荐的解决方案:

Java

不推荐版本

不推荐原因

解决方案

0.X~1.1.X

不支持轻量级服务心跳,导致心跳包过大,影响性能。更多信息,请参见详情

升级至1.2.0及以上版本。

1.4.1 ~ 1.4.2

  • 1.4.1版本当DNS不可用,域名解析失败时,会导致心跳线程意外退出,服务掉线且无法自愈。更多信息,请参见详情

  • 1.4.2版本使用配置加解密功能时,getConfigAndSignListener接口查询加密配置时返回内容为明文。

升级至1.4.3及以上版本。

2.2.0~2.2.1

使用EDAS或SAE部署应用程序时,若配置了参数 -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false,会导致参数失效,影响EDAS和SAE部署时无法连接MSE Nacos集群。

升级至2.2.2及以上版本。

2.3.1

订阅配置时,即使配置并未发生变更,服务端也会频繁地推送配置,造成CPU及网络的额外损耗,可能影响稳定性,请参见详情

升级至2.3.2及以上版本。

Go

不推荐版本

不推荐原因

解决方案

1.0.1~1.1.3

客户端版本显示均为1.0.1,无法准确识别客户端版本,且同时存在两个较严重Bug,可能导致频繁通知变更出现心跳中断等问题。

  • 如果使用MSE基础版引擎,请将客户端升级至1.1.4及以上版本。

  • 如果使用MSE专业版引擎,请将客户端升级至2.1.1及以上版本。

2.0.0~2.1.0

客户端版本均显示为2.0.0,无法准确识别客户端版本,且当出现连接重连后,该版本的实例不会自动重新注册和订阅服务,导致服务掉线且无法自愈。更多信息,请参见详情

升级至2.1.1及以上版本。

相关框架

Dubbo

不推荐版本

不推荐原因

解决方案

2.7.5及以下版本

订阅多个服务时,无法获取到Provider的地址列表变化,导致流量路由到下线或不存在的Provider上。更多信息,请参见详情

升级至2.7.5及以上版本。

2.7.8

Dubbo会创建非常多Nacos Client实例,从而导致连接数,线程数暴涨,极大影响客户端和服务端稳定性。更多信息,请参见详情

升级至2.7.9及以上版本。

2.7.11

默认依赖了Nacos-Java-Client 1.4.1版本。

  • 升级至2.7.12及以上版本。

  • 修改Nacos Client版本为1.4.2及以上版本。

2.7.19及以下版本

Dubbo在订阅服务时,会同时订阅一个服务的多个服务名,但在聚合地址列表时会导致Consumer概率性找不到Provider。更多信息,请参见详情

升级至2.7.20以上版本。

3.0.0~3.1.5

升级至3.1.6以上版本。

Spring Cloud Alibaba

不推荐版本

不推荐原因

解决方案

2.2.4以下版本

会覆盖Nacos Client的日志配置,导致大量Nacos的日志输出到应用的业务日志中,对应用的问题排查造成影响。更多信息,请参见详情

升级至2.2.6.RELEASE以上版本。

2.2.4.RELEASE & 2.2.5.RELEASE

默认依赖Nacos-Java-Client 1.4.1版本。

  • 升级至2.2.6.RELEASE以上版本。

  • 修改Nacos Client版本为1.4.2及以上版本。