MSE Nacos SDK是微服务架构中的关键组件,用于提供高效、灵活的服务注册与发现能力。本文将介绍如何根据技术栈和框架选择合适的SDK版本,避开限制使用的版本。
MSE Nacos SDK的应用
MSE Nacos支持多种编程语言和框架的集成,以适应不同的微服务系统和业务场景。您可根据所需的技术栈和选用的框架,选择适合您的最佳实践。
在微服务系统中,如果您业务使用的技术栈是Java:
原生SDK:通过Nacos Java SDK连接引擎,详情请参见Java SDK。
Spring Boot:Nacos为Spring Boot架构的用户提供了完善的接入方案,详情请参见Nacos融合Spring Boot,成为注册配置中心。
Spring Cloud:Nacos集成Spring Cloud,简化Naocs的配置管理,详情请参见Nacos集成Spring Cloud快速开始。
Dubbo:Dubbo框架通过高性能的RPC技术实现服务注册到Nacos并相互调用,详情请参见如何在MSE上为Dubbo应用构建服务注册中心。
如果您业务使用的技术栈是Golang:
原生SDK:您可参考示例工程Nacos-SDK-Go,快速搭建注册配置中心。
Dubbo-Go:Apache Dubbo-Go支持Go用户基于Nacos搭建RPC服务,详情请参见Apache Dubbo-Go。
Kitex:Kitex是一款基于Golang微服务RPC框架,默认集成了Nacos注册中心,详情请参见如何在MSE上为Kitex应用构建服务注册中心。
如果您业务使用的技术栈是Node.js:
原生SDK:Nacos提供Node.js的连接方式,详情请参见示例Nacos-SDK-Nodejs实现服务注册与发现。
如果您业务使用的技术栈是Python:
您可以参考Nacos-SDK-Python,集成Nacos搭建微服务系统。
另外,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.3及以上版本。 |
2.2.0~2.2.1 | 使用EDAS或SAE部署应用程序时,若配置了参数 | 升级至2.2.2及以上版本。 |
2.3.1 | 订阅配置时,即使配置并未发生变更,服务端也会频繁地推送配置,造成CPU及网络的额外损耗,可能影响稳定性,请参见详情。 | 升级至2.3.2及以上版本。 |
Go
不推荐版本 | 不推荐原因 | 解决方案 |
1.0.1~1.1.3 | 客户端版本显示均为1.0.1,无法准确识别客户端版本,且同时存在两个较严重Bug,可能导致频繁通知变更或出现心跳中断等问题。 |
|
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.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版本。 |
|