Microservices Engine (MSE) Nacos fournit l'enregistrement des services, la découverte et la gestion de la configuration via des SDK pour plusieurs langages. Utilisez ce guide pour choisir le SDK adapté à votre pile technologique et éviter les versions de SDK présentant des problèmes de stabilité connus.
Versions minimales recommandées du SDK
Pour garantir la stabilité et la compatibilité, utilisez au minimum les versions suivantes :
| SDK | Version minimale recommandée |
|---|---|
| Java (Nacos Client) | 2.3.2 ou ultérieure |
| Go (nacos-sdk-go) | 2.3.3 ou ultérieure (Édition Professionnelle), 1.1.6 ou ultérieure (Édition Basique) |
| Python (nacos-sdk-python) | 2.0.7 ou ultérieure |
| Dubbo | 2.7.20 ou ultérieure (2.x), 3.1.6 ou ultérieure (3.x) |
| Spring Cloud Alibaba | 2.2.6.RELEASE ou ultérieure |
Pour plus de détails sur les versions spécifiques à éviter, consultez la section Versions de SDK restreintes ci-dessous.
Sélectionnez un SDK pour votre pile technologique
Java
| Intégration | Description | Référence |
|---|---|---|
| SDK natif | Connectez-vous directement via le SDK Java Nacos. | Java SDK |
| Spring Boot | Utilisez Nacos comme registre de services et centre de configuration dans Spring Boot. | Nacos with Spring Boot |
| Spring Cloud | Intégrez Nacos à Spring Cloud pour la gestion de la configuration. | Nacos with Spring Cloud |
| Dubbo | Enregistrez les services Dubbo auprès de Nacos pour des appels de procédure distante (RPC) haute performance. | Dubbo on MSE |
Go
| Intégration | Description | Référence |
|---|---|---|
| SDK natif | Configurez un registre de services et un centre de configuration avec le SDK Go. | nacos-sdk-go |
| Dubbo-Go | Développez des services RPC en Go avec Apache Dubbo-Go et Nacos. | Dubbo-Go |
| Kitex | Utilisez Kitex, un framework RPC pour les microservices Go avec prise en charge native du registre de services Nacos. | - |
Node.js
| Intégration | Description | Référence |
|---|---|---|
| SDK natif | Implémentez l'enregistrement et la découverte de services avec le SDK Node.js. | nacos-sdk-nodejs |
Python
| Intégration | Description | Référence |
|---|---|---|
| SDK natif | Construisez un système de microservices avec le SDK Python. | nacos-sdk-python |
Service mesh (Istio)
MSE Nacos s'intègre à l'écosystème de service mesh Istio via le standard Mesh Configuration Protocol (MCP). Pour connecter Nacos au service mesh, consultez Create a service source.
Versions de SDK restreintes
Certaines versions de SDK présentent des bugs connus susceptibles de provoquer des interruptions de service, une dégradation des performances ou des problèmes de données. Évitez les versions listées ci-dessous et migrez vers les alternatives recommandées.
SDK Java (Nacos Client)
| Versions restreintes | Problème | Action |
|---|---|---|
| 0.x - 1,1.x | Absence de prise en charge des battements de cœur légers pour les services. Des paquets de battement de cœur trop volumineux dégradent les performances. Détails. | Migrez vers la version 1.2.0 ou ultérieure. |
| 1.4.0 et antérieures | Dans les versions 1.4.0 et antérieures, en cas de perte de paquets réseau ou d'autres erreurs inattendues, le thread de battement de cœur se termine de manière inattendue. Le service passe hors ligne et ne peut pas récupérer automatiquement. Détails. | Migrez vers la version 1.4.3 ou ultérieure. |
| 1.4.1 - 1.4.2 | 1.4.1 : Si le DNS est indisponible et que la résolution de nom de domaine échoue, le thread de battement de cœur se termine de manière inattendue. Le service passe hors ligne et ne peut pas récupérer automatiquement. Détails. 1.4.2 : L'API getConfigAndSignListener renvoie le contenu en texte clair lors de la requête d'une configuration chiffrée. |
Migrez vers la version 1.4.3 ou ultérieure. |
| 2.0.0 - 2.0.1 | Impossible de transmettre les informations d'identité RAM. Après avoir activé l'authentification client sur le moteur, le client ne peut pas obtenir les configurations, enregistrer les services ni découvrir les services, même si les informations requises sont configurées. | Migrez vers la version 2.0.2 ou ultérieure. |
| 2.2.0 - 2.2.1 | Lors du déploiement via EDAS ou SAE, les paramètres JVM -Dnacos.use.endpoint.parsing.rule=false et -Dnacos.use.cloud.namespace.parsing=false ne prennent pas effet. Cela empêche l'application de se connecter au cluster MSE Nacos. |
Migrez vers la version 2.2.2 ou ultérieure. |
| 2.3.1 | Le serveur pousse les mises à jour de configuration de manière répétée, même lorsque la configuration n'a pas changé. Cela entraîne une surcharge inutile du CPU et du réseau et peut affecter la stabilité. Détails. | Migrez vers la version 2.3.2 ou ultérieure. |
SDK Go (nacos-sdk-go)
| Versions restreintes | Problème | Action |
|---|---|---|
| 1.0.1 - 1.1.3 | Le client signale toujours sa version comme étant 1.0.1, ce qui empêche l'identification précise de la version. Deux bugs critiques peuvent provoquer des notifications de changement fréquentes ou des interruptions de battement de cœur. | Édition Basique : migrez vers la version 1.1.6 ou ultérieure. Édition Professionnelle : migrez vers la version 2.3.2 ou ultérieure. |
| 1.1.4 | Si une configuration abonnée est supprimée, le client interroge continuellement le service inexistant. Le flot résultant de requêtes de configuration peut déclencher une limitation de débit et affecter d'autres applications. Détails. | Migrez vers une version ultérieure à 1.1.4. Pour les versions minimales recommandées, consultez le tableau Versions minimales recommandées du SDK ci-dessus. |
| 2.0.0 - 2.1.0 | Le client signale toujours sa version comme étant 2.0.0, ce qui empêche l'identification précise de la version. Après une reconnexion, les instances ne se réenregistrent pas automatiquement et ne se réabonnent pas aux services. Le service passe hors ligne et ne peut pas récupérer. Détails. | Migrez vers la version 2.3.3 ou ultérieure. |
| 2.2.7 - 2.3.1 | Le client signale toujours sa version comme étant 2.2.7, ce qui empêche l'identification précise de la version. Deux bugs critiques peuvent provoquer l'échec de réception des notifications de changement de service ou la perte de service après une interruption de connexion. | Migrez vers la version 2.3.3 ou ultérieure. |
Si vous avez confirmé que votre application ne dépend pas directement du client Nacos Go (nacos-sdk-go), mais qu'une version à haut risque de nacos-sdk-go est toujours détectée, vérifiez si vous utilisez MSE Gateway avec Nacos comme source de service. Si c'est le cas, mettez à jour MSE Gateway vers la dernière version. Les versions antérieures de MSE Gateway incluent une version à haut risque du client Nacos Go, et la mise à niveau de la version du moteur de gateway effacera l'alerte.
SDK Python (nacos-sdk-python)
| Versions restreintes | Problème | Action |
|---|---|---|
| 2.0.0 - 2.0.6 | Après une reconnexion, le client ne se réenregistre pas automatiquement et ne se réabonne pas aux services et configurations. Cela entraîne des interruptions de service sans récupération automatique. | Migrez vers la version 2.0.7 ou ultérieure. |
Dubbo
| Versions restreintes | Problème | Action |
|---|---|---|
| 2.7.5 et antérieures | Lors de l'abonnement à plusieurs services, les modifications de la liste d'adresses d'un fournisseur ne sont pas récupérées. Le trafic peut être routé vers un fournisseur hors ligne ou inexistant. Détails. | Migrez vers la version 2.7.6 ou ultérieure. |
| 2.7.8 | Crée un nombre excessif d'instances Nacos Client, provoquant une augmentation brutale des connexions et des threads qui affecte la stabilité du client et du serveur. Détails. | Migrez vers la version 2.7.9 ou ultérieure. |
| 2.7.11 | Dépend par défaut de Nacos-Java-Client 1.4.1 (une version restreinte). | Migrez vers la version 2.7.12 ou ultérieure, ou définissez explicitement la version du Nacos Client sur 1.4.2 ou ultérieure. |
| 2.7.19 et antérieures | Lorsque Dubbo s'abonne à un service, il s'abonne à plusieurs noms de service. Lors de l'agrégation de la liste d'adresses, le consommateur peut ne pas trouver le fournisseur. Détails. | Migrez vers la version 2.7.20 ou ultérieure. |
| 3.0.0 - 3.1.5 | Contient des problèmes connus affectant la stabilité. | Migrez vers la version 3.1.6 ou ultérieure. |
Spring Cloud Alibaba
| Versions restreintes | Problème | Action |
|---|---|---|
| Antérieures à 2.2.4 | Écrase la configuration des journaux du Nacos Client. Les journaux Nacos sont écrits dans les journaux métier de l'application, ce qui complique le dépannage. Détails. | Migrez vers la version 2.2.6.RELEASE ou ultérieure. |
| 2.2.4.RELEASE, 2.2.5.RELEASE | Dépend par défaut de Nacos-Java-Client 1.4.1 (une version restreinte). | Migrez vers la version 2.2.6.RELEASE ou ultérieure, ou définissez explicitement la version du Nacos Client sur 1.4.2 ou ultérieure. |
| 2,2.X.RELEASE, 2021., 2022. | Ajoute la sonde de contrôle de santé Nacos au contrôle de santé Spring Cloud Actuator par défaut. En cas d'exceptions d'accès entre l'application et Nacos, cela peut provoquer des redémarrages inattendus de l'application ou le retrait du trafic. Détails. | Ajoutez la configuration suivante au fichier de configuration de votre application : management.health.nacos-config.enabled=false et management.health.nacos-discovery.enabled=false. Ou migrez vers la version 2023.0.3.4 ou ultérieure. |
Mettez à jour votre SDK Nacos
Identifiez le SDK et la version actuellement utilisés par votre application (vérifiez
pom.xml,go.mod,requirements.txtoupackage.json).Consultez les tableaux ci-dessus pour confirmer la version cible.
Mettez à jour la version de la dépendance dans votre fichier de configuration de build.
Reconstruisez et testez l'application dans un environnement de préproduction.
Déployez l'application mise à jour.
Remarque : MSE gère la version côté serveur de Nacos. Les tableaux ci-dessus s'appliquent au SDK client intégré à votre application.