ApsaraMQ for RocketMQ propose plusieurs versions de SDK basées sur différents protocoles. Choisissez le SDK adapté à votre type d'instance et à votre charge de travail.
Pour les nouveaux projets, privilégiez le SDK gRPC RocketMQ 5.x . Il prend en charge le plus grand nombre de langages, intègre toutes les nouvelles fonctionnalités et fonctionne avec les instances de la série 5.x. Si vous avez besoin de fonctionnalités exclusives aux anciens SDK, telles que la consommation en mode diffusion ou la consommation de flux, utilisez le SDK correspondant.
Versions du SDK
Le tableau suivant compare le protocole, la compatibilité des instances et les recommandations pour chaque version du SDK.
| Protocole | Protocole gRPC v2 | Protocole Remoting | Protocole Remoting | Protocole Remoting | Protocole gRPC v1 | Protocole HTTP |
| Instances accessibles | Instances de la série 5.x | Instances des séries 5.x et 4.x | Instances des séries 5.x et 4.x | Instances des séries 5.x et 4.x | Instances de la série 4.x | Instances de la série 4.x |
| Recommandation | Recommandé. Prend en charge plusieurs langages. Toutes les nouvelles fonctionnalités et optimisations ciblent ce SDK. Si certaines fonctionnalités du SDK gRPC 5.x ne répondent pas à vos exigences, utilisez le SDK Remoting 5.x. | Les applications existantes peuvent continuer à utiliser ces versions du SDK. Compatibles avec les instances de la série 5.x. | Les applications existantes peuvent continuer à utiliser ces versions du SDK. Compatibles avec les instances de la série 5.x. | Les applications existantes peuvent continuer à utiliser ces versions du SDK. Compatibles avec les instances de la série 5.x. | N'utilisez pas les clients de ces versions. Aucune nouvelle fonctionnalité ni optimisation. Accessibles uniquement aux instances de la série 4.x. | N'utilisez pas les clients de ces versions. Aucune nouvelle fonctionnalité ni optimisation. Accessibles uniquement aux instances de la série 4.x. |
Comparaison des fonctionnalités entre les versions du SDK
Dans le tableau suivant, une coche indique la prise en charge et une croix son absence.
Fonctionnalité |
5.x gRPC |
5.x Remoting |
4.x/3.x |
ONS TCP 1.x |
ONS TCP 2.x |
ONS HTTP |
| Envoi de messages normaux, ordonnés, transactionnels et planifiés | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Modèle léger basé sur les topics | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Consommation concurrente | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Consommation ordonnée des messages | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Optimisation de la concurrence pour la consommation ordonnée des messages | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Consommation en mode diffusion | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Consommation de flux (connexion à Flink, etc.) | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Trace des messages | ✅ | ✅ | Pris en charge dans les versions 4.5.2 et ultérieures | ✅ | ✅ | ❌ |
| Données de métriques client pour le producteur et le consommateur | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Arrêt gracieux | ✅ | Pris en charge uniquement pour les instances de la série 5.x | ❌ | ❌ | ❌ | ❌ |
| Envoi par lot | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Message prioritaire | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Les messages prioritaires vous permettent d'attribuer des niveaux de priorité afin que les messages à haute priorité soient consommés avant ceux à faible priorité. Cette fonctionnalité est exclusive au SDK gRPC RocketMQ 5.x.
Limites
Les différents consommateurs d'un même groupe de consommateurs doivent utiliser des clients prenant en charge le même protocole.
-
Lors d'une mise à niveau progressive d'un SDK utilisant le protocole Remoting vers un SDK utilisant le protocole gRPC pour le même groupe de consommateurs :
Les groupes de consommateurs qui délivrent des messages dans l'ordre ne prennent pas en charge cette mise à niveau.
Les groupes de consommateurs qui délivrent des messages de manière concurrente prennent en charge les mises à niveau sans interruption. Un petit nombre de messages peut être dupliqué pendant la mise à niveau.
Pour envoyer des messages vers le même topic ordonné, tous les clients producteurs doivent utiliser le même protocole : soit le protocole Remoting, soit le protocole gRPC.
-
Pour un groupe de consommateurs qui délivre des messages dans l'ordre, le décalage du consommateur peut revenir en arrière si la séquence suivante se produit :
Le groupe de consommateurs utilise d'abord un SDK utilisant le protocole Remoting.
Le SDK est mis à niveau vers un SDK utilisant le protocole gRPC.
Le SDK est restauré vers le SDK utilisant le protocole Remoting.
Le SDK ONS TCP 2.x RocketMQ est disponible uniquement dans certaines régions. Pour plus d'informations, consultez la section Limites.
SDK gRPC RocketMQ 5.x
Le SDK gRPC 5.x prend en charge Java, C#, Go, Python et C++. Tous les langages utilisent le protocole gRPC v2.
Langage |
Références |
| SDK Java | Guide des versions | Préparer l'environnement | Exemple de code |
| SDK C# | Guide des versions | Préparer l'environnement | Exemple de code |
| SDK Go | Guide des versions | Préparer l'environnement | Exemple de code |
| SDK Python | Guide des versions | Préparer l'environnement | Exemple de code |
| SDK C++ | Guide des versions | Préparer l'environnement | Exemple de code |
SDK Remoting RocketMQ 5.x
Le SDK Remoting 5.x est disponible uniquement pour Java et utilise le protocole Remoting.
Langage |
Références |
| SDK Java | Guide des versions | Préparer l'environnement | Exemple de code |
SDK RocketMQ 4.x/3.x
Le SDK 4.x/3.x est disponible pour Java et C++ et utilise le protocole Remoting.
Langage |
Références |
| SDK Java | Guide des versions | Préparer l'environnement | Exemple de code |
| SDK C++ | Guide des versions | Préparer l'environnement | Exemple de code |
SDK ONS TCP 1.x RocketMQ
Le SDK ONS TCP 1.x est disponible pour Java, C++ et .NET et utilise le protocole Remoting.
Langage |
Références |
| SDK Java | Guide des versions | Préparer l'environnement | Exemple de code |
| SDK C++ | Guide des versions | Préparer l'environnement | Exemple de code |
| SDK .NET | Guide des versions | Préparer l'environnement | Exemple de code |