Tous les produits
Search
Centre de documentation

ApsaraMQ for RocketMQ:Graceful shutdown

Dernière mise à jour :Aug 09, 2026

L'arrêt en douceur est une fonctionnalité native d'ApsaraMQ for RocketMQ qui prévient la perte de messages et les erreurs côté 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à envoyés par les clients.

Drainage des connexions via GOAWAY

Le serveur ApsaraMQ for RocketMQ utilise la trame GOAWAY définie dans le protocole HTTP/2 pour fermer les connexions de manière contrôlée 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. Aucun échec d'envoi ne survient pendant le processus d'arrêt en douceur.

  • 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 la validation des offsets des consommateurs échoue pendant la transition.

Exigences de version du SDK

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

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

Notes d'utilisation

  • Aucune configuration côté client requise — L'arrêt en douceur est une fonctionnalité côté serveur. Mettez simplement à jour votre SDK client vers une version prise en charge.

  • Concevez des consommateurs idempotents — La validation des offsets des consommateurs peut é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 minimales de version pour l'arrêt en douceur.