The MSE Nacos software development kit (SDK) is a key component in the microservices model, providing efficient and flexible service registration and discovery. This topic describes how to select a suitable SDK version based on your technology stack and framework and how to avoid restricted versions.
Application of MSE Nacos SDKs
MSE Nacos supports integration with multiple programming languages and frameworks to accommodate different microservice systems and business scenarios. Select the best practice that aligns with your technology stack and framework.
If your business uses the Java technology stack in a microservice system:
Native SDK: Connect to the engine using the Nacos Java SDK. For more information, see Java SDK.
Spring Boot: Nacos provides a complete access solution for users of the Spring Boot architecture. For more information, see Use Nacos as a service registry and configuration center with Spring Boot.
Spring Cloud: Integrate Nacos with Spring Cloud to simplify Nacos configuration management. For more information, see Get started with Nacos and Spring Cloud.
Dubbo: The Dubbo framework uses high-performance remote procedure call (RPC) technology to register services with Nacos and enable services to call each other. For more information, see Build a service registry on MSE for Dubbo applications.
If your business uses the Golang technology stack:
Native SDK: To quickly set up a service registry and configuration center, see the Nacos-SDK-Go sample project.
Dubbo-Go: Apache Dubbo-Go allows Go users to build RPC services based on Nacos. For more information, see Apache Dubbo-Go.
Kitex: Kitex is an RPC framework for Go microservices. It integrates with a Nacos service registry by default.
If your business uses the Node.js technology stack:
Native SDK: Nacos provides a connection method for Node.js. To implement service registration and discovery, see the Nacos-SDK-Nodejs example.
If your business uses the Python technology stack:
Integrate Nacos to build a microservice system. For more information, see Nacos-SDK-Python.
Additionally, MSE Nacos fully integrates with the Istio service mesh ecosystem to help developers use Nacos in cloud-native scenarios. Nacos supports the Mesh Configuration Protocol (MCP) standard. To integrate Nacos with Service Mesh, see Create a service source.
Restricted versions of Nacos SDKs
To ensure the stability of your microservice system, avoid using the restricted Nacos SDK versions listed in this topic. This topic describes the restricted versions, the reasons for the restrictions, and the recommended solutions.
Java
Restricted version | Reasons to Avoid | Solution |
0.X to 1.1.X | Lightweight service heartbeats are not supported. This results in oversized heartbeat packets, which degrades performance. For more information, see Details. | Upgrade to version 1.2.0 or later. |
1.4.1 to 1.4.2 |
| Upgrade to version 1.4.3 or later. |
2.0.0 to 2.0.1 | These versions cannot carry RAM identity information. After you enable client authentication on the engine, you cannot obtain configurations, register services, or discover services, even if you have configured the required information. | Upgrade to version 2.0.2 or later. |
2.2.0 to 2.2.1 | When you deploy an application using EDAS or SAE, if you configure the | Upgrade to version 2.2.2 or later. |
2.3.1 | When you subscribe to a configuration, the server frequently pushes the configuration even if it has not changed. This causes unnecessary CPU and network overhead and may affect stability. For more information, see Details. | Upgrade to version 2.3.2 or later. |
Go
Restricted version | Reason for rejection | Solution |
1.0.1 to 1.1.3 | The client version is always displayed as 1.0.1, which prevents accurate version identification. Two critical bugs also exist, which may cause issues such as frequent change notifications or heartbeat interruptions. |
|
1.1.4 | If a subscribed configuration is deleted, a client bug causes continuous queries for the non-existent service. This generates many configuration query requests, which can trigger rate limiting for the configuration query API and affect other applications that are querying configurations. For more information, see Details. | |
2.0.0 to 2.1.0 | The client version is always displayed as 2.0.0, which prevents accurate version identification. After a reconnection, instances of this version do not automatically re-register or re-subscribe to services. This causes the service to go offline and prevents automatic recovery. For more information, see Details. | Upgrade to version 2.3.2 or later. |
2.2.7 to 2.3.1 | The client version is always displayed as 2.2.7, which prevents accurate version identification. Two critical bugs may also exist, which can lead to a failure to receive service change notifications or service loss after a connection is interrupted. |
Python
Restricted version | Reason | Solution |
2.0.0 to 2.0.6 | After a reconnection, this version does not automatically re-register or re-subscribe to services and configurations. This leads to service interruptions and prevents automatic recovery. | Upgrade to version 2.0.7 or later. |
Related frameworks
Dubbo
Restricted version | Reason for deprecation | Solution |
2.7.5 and earlier | When you subscribe to multiple services, changes to the provider's address list are not retrieved. This can cause traffic to be routed to an offline or non-existent provider. For more information, see Details. | Upgrade to version 2.7.6 or later. |
2.7.8 | Dubbo creates an excessive number of Nacos Client instances. This causes a sharp increase in the number of connections and threads, which severely affects client and server stability. For more information, see Details. | Upgrade to version 2.7.9 or later. |
2.7.11 | Depends on Nacos-Java-Client 1.4.1 by default. |
|
2.7.19 and earlier | When Dubbo subscribes to a service, it subscribes to multiple service names for the same service. However, when aggregating the address list, the consumer may fail to find the provider. For more information, see Details. | Upgrade to version 2.7.20 or later. |
3.0.0 to 3.1.5 | Upgrade to version 3.1.6 or later. |
Spring Cloud Alibaba
Restricted version | Rejection reason | Solution |
Versions earlier than 2.2.4 | Overwrites the log configuration of the Nacos Client. This causes many Nacos logs to be written to the application's business logs, which complicates application troubleshooting. For more information, see Details. | Upgrade to version 2.2.6.RELEASE or later. |
2.2.4.RELEASE & 2.2.5.RELEASE | Depends on Nacos-Java-Client 1.4.1 by default. |
|