Tous les produits
Search
Centre de documentation

ApsaraMQ for RocketMQ:Graceful shutdown

Dernière mise à jour :Oct 09, 2026

L'arrêt progressif est une fonctionnalité native d'ApsaraMQ for RocketMQ qui empêche la perte de messages et les erreurs client lors des opérations côté serveur. Lors des déploiements de versions, des redémarrages ou des maintenances du serveur, ApsaraMQ for RocketMQ active des mécanismes de protection pour éviter les déconnexions brutales des clients et garantir la continuité des activités.

Mécanismes de protection

Suspension des écritures côté serveur

Avant le redémarrage d'un nœud de stockage, le serveur suspend temporairement les écritures sur ce nœud. Le redémarrage ne débute qu'une fois l'écriture de nouveaux messages terminée. Cette approche garantit le stockage réussi de tous les messages déjà soumis par les clients.

Vidage des connexions via GOAWAY

Le serveur ApsaraMQ for RocketMQ utilise la trame GOAWAY définie dans le protocole HTTP/2 pour fermer proprement les connexions ou notifier aux clients leur fermeture imminente. Ce mécanisme coordonne la fin des connexions entre le serveur et les clients, empêche l'interruption des requêtes en cours et assure la stabilité du système.

Effets

  • Producteurs — Toutes les demandes d'envoi de messages aboutissent. Aucune défaillance d'envoi ne survient pendant l'arrêt progressif.

  • Consommateurs — La plupart des messages sont consommés avec succès. Dans de rares cas, un petit nombre de messages mis en file d'attente sur le nœud de stockage en cours de redémarrage peut être redistribué, car les validations d'offset du consommateur échouent pendant la transition.

Exigences de version du SDK

Pour utiliser l'arrêt progressif, votre SDK client doit respecter les exigences de version minimales suivantes :

SDK pour JavaSDK pour GoSDK pour PythonSDK pour C++SDK pour C#

Langage Version minimale Référence
Java (protocole gRPC) 5.0.7 SDK pour Java
Java (protocole Remoting) 5.3.1 SDK pour Java
Go 5.1.0-rc.1 SDK pour Go
Python 5.0.4 SDK pour Python
C++ 5.0.2 SDK pour C++
C# 5.1.0 SDK pour C#
Node.js 1.0.1 SDK pour Node.js

Notes d'utilisation

  • Aucune configuration côté client requise — L'arrêt progressif est une fonctionnalité côté serveur. Il vous suffit de mettre à jour votre SDK client vers une version prise en charge.

  • Concevez des consommateurs idempotents — Les validations d'offset du consommateur peuvent échouer pendant la brève période de transition, ce qui peut entraîner la redistribution d'un petit nombre de messages. Assurez-vous que votre logique de consommation peut traiter plusieurs fois le même message en toute sécurité.

  • Surveillez proactivement les versions du SDK — Lorsque vous ajoutez de nouveaux services ou mettez à jour des dépendances, vérifiez que votre SDK client ApsaraMQ for RocketMQ respecte toujours les exigences de version minimales pour l'arrêt progressif.