ApsaraMQ for RocketMQ impose des limites sur les quotas de ressources, les types d'instance et les paramètres associés. Lorsque vous utilisez ApsaraMQ for RocketMQ, veillez à ne pas dépasser les limites correspondantes afin d'éviter les erreurs applicatives.
Limites des paramètres
Les limites de paramètres suivantes sont fixes. Respectez ces spécifications pour éviter les erreurs liées à des caractères non valides ou à des longueurs excessives.
Paramètre | Valeur | Description |
Nom de l'instance |
| Aucune. |
Nom du topic |
N'utilisez pas les caractères réservés, préfixes ou suffixes suivants pour les noms de topics. | Utilisez des caractères courts et courants pour les noms de topics et évitez les caractères spéciaux, qui peuvent provoquer des erreurs d'analyse. Un nom excessivement long peut entraîner le rejet des opérations sur les messages. |
Nom du LiteTopic |
| Utilisez des caractères courts et courants pour les noms de LiteTopic et évitez les caractères spéciaux, qui peuvent provoquer des erreurs d'analyse. Un nom excessivement long peut entraîner le rejet des opérations sur les messages. |
Durée de vie (TTL) du LiteTopic |
| Si aucun message n'est écrit dans un LiteTopic pendant la période TTL spécifiée, le LiteTopic expire et est automatiquement supprimé. Une valeur de -1 signifie que le LiteTopic n'expire jamais. Vous ne pouvez définir ce paramètre que lorsque le type de message est Lite. |
Nom du groupe de consommateurs |
N'utilisez pas les caractères réservés ou préfixes suivants pour les noms de groupes de consommateurs. | Aucune. |
Remarques sur l'instance |
| Aucune. |
Remarques sur le topic | ||
Remarques sur le groupe de consommateurs | ||
Identifiants ACL |
| Aucune. |
Délai d'expiration de la requête |
| Le délai d'expiration de la requête spécifie la durée pendant laquelle le client attend la fin d'un appel synchrone. Définissez une valeur adaptée à votre application pour éviter un blocage prolongé des threads. |
Taille du message | Maximum : 4 Mo. Cette limite s'applique uniquement au corps du message et n'inclut pas la compression. | Vous pouvez compresser les messages et contrôler la taille de la charge utile pour éviter le transfert de fichiers volumineux. Si un message dépasse la limite de taille, vous pouvez le fractionner ou utiliser OSS et transférer l'URL du message à la place. Une prise en charge spéciale de la taille des messages est disponible. Soumettez un ticket pour en faire la demande. |
Propriétés de message personnalisées |
N'utilisez pas les clés de propriété réservées suivantes comme clés de propriété personnalisées. | Aucune. |
MessageGroup |
| MessageGroup est l'identifiant de groupe pour les messages ordonnés. Il est généralement défini comme un identifiant pour un groupe de messages qui doivent être traités dans l'ordre, tel qu'un ID de commande ou un ID utilisateur. |
Nouvelles tentatives d'envoi de messages |
| Le SDK client gère automatiquement les nouvelles tentatives d'envoi de messages selon une politique intégrée, qui n'est pas visible pour votre application. Ne définissez pas cette valeur trop élevée pour éviter de bloquer les threads métier. Si un message échoue toujours après le nombre maximal de tentatives, vous devez mettre en œuvre un mécanisme de secours dans votre application pour garantir la fiabilité. |
Nouvelles tentatives de consommation de messages |
| Vous pouvez définir une valeur raisonnable selon vos besoins. Évitez d'utiliser les nouvelles tentatives pour déclencher une boucle infinie. Un nombre excessif de tentatives peut augmenter considérablement la pression sur le système. |
Intervalle de vérification de la résolution des transactions |
| Cet intervalle détermine la fréquence à laquelle le client producteur vérifie l'état d'un message transactionnel semi-validé qui n'a pas été validé en raison d'une exception ou d'un redémarrage. Évitez de définir cet intervalle trop court, car des vérifications fréquentes peuvent dégrader les performances du système. |
Première heure de vérification des messages transactionnels semi-validés |
| Aucune. |
Délai d'expiration maximal pour les messages transactionnels semi-validés |
| Si un message transactionnel semi-validé n'est pas validé en raison d'un redémarrage du système ou d'une exception, le client producteur vérifie son état à l'intervalle de vérification de la résolution des transactions spécifié. Si aucun résultat n'est renvoyé après la période de délai d'expiration maximale, le message transactionnel semi-validé est annulé de force. Vous pouvez surveiller cette métrique pour éviter les exceptions de transaction. |
Délai maximal pour les messages planifiés |
| Vous pouvez définir le délai des messages planifiés sur un intervalle de niveau horaire. Évitez les longs délais. |
Délai d'expiration de la consommation PushConsumer |
| Le délai d'expiration de la consommation PushConsumer est contrôlé par le serveur ApsaraMQ for RocketMQ. Si un consommateur ne traite pas un message dans ce délai, le système marque la tentative de consommation comme ayant échoué et déclenche une nouvelle tentative. Cela peut entraîner un petit nombre de messages en double. |
Cache local PushConsumer |
| Lorsque le type de consommateur est PushConsumer, le SDK client met en cache certains messages localement pour améliorer le débit et les performances du consommateur. Le nombre et la taille des messages mis en cache doivent respecter les limites de la mémoire système. |
Intervalle de nouvelle tentative PushConsumer |
| Aucune. |
Concurrence de consommation PushConsumer |
| Aucune. |
Taille de lot maximale pour la récupération des messages |
| Ce paramètre spécifie le nombre maximal de messages qu'un consommateur peut récupérer auprès du serveur en une seule fois. Vous pouvez définir une valeur raisonnable selon vos besoins. La récupération d'un trop grand nombre de messages à la fois peut entraîner de nombreux messages en double en cas d'échec de la consommation. |
Durée d'invisibilité maximale SimpleConsumer |
| Définissez cette durée légèrement plus longue que votre temps de traitement des messages attendu, y compris les éventuels intervalles de nouvelle tentative. |
Délai d'expiration du sondage long du consommateur | Plage de valeurs : minimum : 5 secondes. Maximum : 20 secondes. Vous pouvez personnaliser cette valeur dans la plage spécifiée. | Avec le sondage long, si aucun message n'est disponible sur le serveur, la requête du client reste ouverte jusqu'à l'arrivée d'un message ou jusqu'à l'expiration du délai. Cette méthode réduit les requêtes de sondage vides et diminue la charge sur le client et le serveur, en particulier lorsque le volume de messages est faible. |
Abonnement | Limite de longueur de l'expression de filtre : 4 000 caractères (y compris les filtres TAG et SQL). | Pour plus d'informations sur les abonnements, consultez Abonnement. |
Quotas de ressources
ApsaraMQ for RocketMQ limite certaines métriques, telles que le nombre de requêtes par seconde (QPS) et la concurrence, afin de garantir la stabilité de la production. Ces quotas suffisent pour la plupart des scénarios. Si ces quotas ne répondent pas à vos besoins métier, contactez le support technique d'ApsaraMQ for RocketMQ pour obtenir de l'assistance.
Limite | Valeur | Description | |
Instances avec abonnement et paiement à l'utilisation | Instances serverless | ||
Nombre d'instances par région | Un maximum de 1 000 instances de tous types confondus. | Aucune. | |
TPS d'envoi et de réception des messages par instance | Déterminé par le type d'instance acheté. Pour connaître les limites spécifiques, consultez la section Limites des types d'instance. | Mise à l'échelle automatique | Le TPS d'envoi et de réception des messages reflète les performances de traitement de l'instance. Si le TPS réel dépasse la limite du type d'instance, celle-ci subit une limitation de débit. Mettez à niveau le type d'instance sans délai. |
Période de rétention des messages |
|
| Étendez la période de rétention des messages dans la mesure où vos coûts de stockage le permettent. Une période plus longue offre davantage de temps pour le dépannage et la relecture des messages. |
Nombre de messages en cours de traitement par groupe de consommateurs | Maximum : 2 500. | Maximum : 2 500. | Un nombre excessif de messages en cours de traitement dans un groupe de consommateurs peut ralentir les réponses des consommateurs. Surveillez cette métrique et identifiez rapidement la cause du problème. |
Nombre de LiteTopics auxquels un seul consommateur peut s'abonner | Maximum : 2 000. | Maximum : 2 000. | L'abonnement à un nombre excessif de LiteTopics sur un seul consommateur peut dégrader les performances du client. Pour demander une augmentation de cette limite, soumettez un ticket. |
TPS de consommation maximal pour chaque LiteTopic | 200 | 200 | Vous pouvez créer des centaines de milliers, voire des millions, de LiteTopics sous un topic. Le TPS de consommation total du topic n'est pas affecté. |
Limitations
Message Queue for RocketMQ, une plateforme entièrement managée en tant que service (PaaS), restreint certaines opérations et fonctionnalités à haut risque disponibles dans Apache RocketMQ open source afin de garantir la stabilité du système. Si vous avez des besoins spécifiques, contactez le support technique de Message Queue for RocketMQ.
|
Limitation |
Description |
|
Compatibilité avec les outils Admin d'Apache RocketMQ |
Message Queue for RocketMQ ne prend pas en charge l'API Admin d'Apache RocketMQ ni l'interface de ligne de commande (CLI) pour gérer les instances, les topics ou les groupes. Pour gérer les ressources par programmation, utilisez Alibaba Cloud OpenAPI, qui propose des SDK multilingues et une prise en charge de la CLI. |
|
Messages Request-Reply d'Apache RocketMQ |
Message Queue for RocketMQ ne prend pas en charge l'envoi de messages Request-Reply d'Apache RocketMQ. |
|
Composant Streaming d'Apache RocketMQ |
Message Queue for RocketMQ ne fournit pas de composant Streaming géré pour Apache RocketMQ. Vous pouvez déployer ce composant vous-même dans un environnement Alibaba Cloud ou utiliser la fonctionnalité d'intégration des données de Message Queue for RocketMQ pour une intégration et un calcul légers des données. |
|
Composant MQTT d'Apache RocketMQ |
Message Queue for RocketMQ ne fournit pas de composant MQTT géré pour Apache RocketMQ. Nous vous recommandons d'utiliser le service Alibaba Cloud ApsaraMQ for MQTT, qui offre davantage de fonctionnalités. |
|
Composant EventBridge d'Apache RocketMQ |
Message Queue for RocketMQ ne fournit pas de composant EventBridge géré pour Apache RocketMQ. Nous vous recommandons d'utiliser le service Alibaba Cloud EventBridge, qui offre davantage de fonctionnalités. |
|
Composant Apache RocketMQ-Connector |
Message Queue for RocketMQ ne fournit pas de composant Apache RocketMQ-Connector géré. Vous pouvez utiliser la fonctionnalité d'intégration des données de Message Queue for RocketMQ pour l'entrée et la sortie des données. |
Limites des types d'instance
Les instances Standard Edition, Single Node Edition et Professional Edition ne prennent pas en charge le TPS élastique. Planifiez l'utilisation de vos ressources à l'avance afin d'éviter la limitation du débit de votre instance si des pics de trafic soudains dépassent les limites de votre spécification.
Les quotas de topics et de groupes par instance sont suffisants pour la plupart des cas d'utilisation en production à grande échelle. En tant que bonne pratique, isolez vos services métier sur différentes instances en fonction du département ou du domaine. Cette approche améliore la stabilité et la gestion des ressources.
La spécification TPS des messages repose sur le nombre total de messages normaux envoyés et reçus, en utilisant une taille de message standard de 4 Ko comme référence. Un multiplicateur s'applique lorsque vous utilisez des fonctionnalités de messagerie avancées ou que vous envoyez des messages volumineux. Pour plus de détails sur le calcul du TPS, consultez Spécifications de calcul.
-
Si le TPS réel pour l'envoi et la réception de messages dépasse la limite supérieure de votre type d'instance acheté :
Si le TPS élastique est activé, votre instance peut fonctionner normalement tant que le TPS reste dans la plage élastique provisionnée. L'utilisation qui dépasse la spécification de base est facturée selon le modèle de paiement à l'utilisation. Si le TPS dépasse la capacité élastique maximale, l'instance est soumise à une limitation de débit.
Pour plus d'informations sur la facturation du TPS élastique pour les instances non Serverless, consultez Frais de TPS élastique. Pour plus d'informations sur la facturation du TPS élastique pour les instances Serverless, consultez Frais de TPS élastique Serverless.
Si votre instance ne prend pas en charge le TPS élastique ou si la fonctionnalité n'est pas activée, Message Queue for RocketMQ applique une limitation de débit à l'instance.
ImportantComportement de limitation : Lorsque la limitation est déclenchée, le serveur renvoie une réponse d'échec pour les requêtes qui dépassent la limite. Les requêtes ne sont pas mises en file d'attente.
Risque de perte de messages : La limitation ne supprime pas les messages côté serveur. Toutefois, si le client ne dispose d'aucun mécanisme de nouvelle tentative après avoir reçu une réponse d'échec due à la limitation, le système ne conserve pas le message. Cela équivaut à une perte de message.
Bonnes pratiques : Configurez une politique de nouvelle tentative d'envoi de messages raisonnable sur le client. Cette politique gère les échecs d'envoi causés par une limitation transitoire et garantit la fiabilité des messages.
Un nombre excessif de connexions clientes vers une instance Message Queue for RocketMQ consomme des ressources serveur importantes et peut avoir un impact sévère sur la stabilité. Par conséquent, assurez-vous que le nombre de connexions clientes ne dépasse pas la limite de votre type d'instance.
Instances de la série Serverless
Nombre de clients en ligne simultanés : Nombre total de producteurs et de consommateurs en ligne. Chacun est compté comme un client.
Nombre de ressources : Nombre total de topics et de groupes de consommateurs.
Architecture de déploiement | Mode de capacité | Plage TPS | Clients concurrents maximaux | Quota gratuit de clients | Nombre maximal de ressources | Quota gratuit de ressources | LiteTopics maximaux |
Partagé | Utilisation cumulative | Tous | 5 000 | 500 | 3 000 | 100 | / |
Réservé + Élastique | [2 000, 20 000] | 5 000 | 1 000 | 3 000 | 200 | ||
(20 000, 50 000] | 8 000 | 2 000 | 3 000 | 200 | |||
(50 000, 100 000] | 10 000 | 3 000 | 3 000 | 200 | |||
(100 000, 200 000] | 20 000 | 5 000 | 3 000 | 200 | |||
Dédié | Réservé + Élastique | 5 000 | 3 000 | 2 000 | 3 000 | 300 | 300 000 |
10 000 | 6 000 | 4 000 | 4 000 | 300 | 500 000 | ||
15 000 | 8 000 | 6 000 | 6 000 | 500 | 800 000 | ||
[20 000, 50 000] | 10 000 | 8 000 | 6 000 | 500 | 1 200 000 | ||
(50 000, 100 000] | 20 000 | 10 000 | 6 000 | 500 | 3 000 000 | ||
(100 000, 200 000] | 40 000 | 20 000 | 8 000 | 1 000 | 3 600 000 | ||
(200 000, 300 000] | 80 000 | 40 000 | 10 000 | 1 500 | 5 000 000 | ||
(300 000, 500 000] | 100 000 | 50 000 | 16 000 | 2 000 | 6 500 000 | ||
(500 000, 1 000 000] | 200 000 | 100 000 | 40 000 | 3 000 | 11 600 000 |
Instances non Serverless (abonnement et paiement à l'utilisation)
Édition Standard
Sous-série d'instance | Type d'instance | TPS de base maximal (ops/sec) | TPS de rafale maximal (ops/sec) | Connexions maximales | Bande passante sortante (Mbps) | Quota gratuit de topics | Quota maximal de topics | Groupes de consommateurs maximaux | LiteTopics maximaux |
Single Node Edition (plus commercialisée) | rmq.s1.micro | 500 | Non applicable Ce type d'instance ne prend pas en charge l'élasticité de rafale. | 2 000 | 1 à 1 000 Personnalisable. | 100 | 100 | 1 000 | / |
Cluster High-availability Edition | rmq.s2,2xlarge | 2 000 | 4 000 | 300 | 50 000 | ||||
rmq.s2,4xlarge | 4 000 | 4 000 | 150 000 | ||||||
rmq.s2,6xlarge | 6 000 | 6 000 | 500 | 300 000 |
Si les quotas de topics et de groupes de consommateurs pour l'instance Standard Edition de niveau supérieur (rmq.s2,6xlarge) sont insuffisants pour vos besoins métier, effectuez une mise à niveau vers l'édition Professional et sélectionnez un type d'instance approprié.
Édition Professional
Sous-série d'instance | Type d'instance | TPS de base maximal (ops/sec) | TPS de rafale maximal (ops/sec) | Connexions maximales | Bande passante sortante (Mbps) | Quota gratuit de topics | Quota maximal de topics | Groupes de consommateurs maximaux | LiteTopics maximaux |
Single Node Edition (plus commercialisée) | rmq.p1.micro | 500 | Non applicable Ce type d'instance ne prend pas en charge l'élasticité de rafale. | 2 000 | 1 à 1 000 Personnalisable. | 150 | 150 | 1 500 | / |
Cluster High-availability Edition | rmq.p2,4xlarge | 4 000 | 2 000 | 4 000 | 500 | 2 000 | 150 000 | ||
rmq.p2,6xlarge | 6 000 | 3 000 | 6 000 | 300 000 | |||||
rmq.p2,10xlarge | 10 000 | 5 000 | 10 000 | 1 000 | 500 000 | ||||
rmq.p2,20xlarge | 20 000 | 10 000 | 10 000 | 800 000 | |||||
rmq.p2,30xlarge | 30 000 | 15 000 | 12 000 | 2 000 | 1 000 000 | ||||
rmq.p2,40xlarge | 40 000 | 20 000 | 12 000 | 1 200 000 | |||||
rmq.p2,50xlarge | 50 000 | 20 000 | 14 000 | 1 400 000 | |||||
rmq.p2.100xlarge | 100 000 | 30 000 | 26 000 | 2 200 000 | |||||
rmq.p2.120xlarge | 120 000 | 40 000 | 30 000 | 2 700 000 | |||||
rmq.p2.150xlarge | 150 000 | 50 000 | 38 000 | 3 300 000 | |||||
rmq.p2.200xlarge | 200 000 | 60 000 | 50 000 | 4 500 000 |
Si les quotas de topics et de groupes de consommateurs pour les instances Professional Edition de type rmq.p2,10xlarge ou supérieur sont insuffisants pour vos besoins métier, soumettez un ticket.
Édition Platinum
Sous-série d'instance | Type d'instance | TPS de base maximal (ops/sec) | TPS de rafale maximal (ops/sec) | Connexions maximales | Bande passante sortante (Mbps) | Quota gratuit de topics | Quota maximal de topics | Groupes de consommateurs maximaux | LiteTopics maximaux |
Cluster High-availability Edition | rmq.u2,10xlarge | 10 000 | 5 000 | 10 000 | 1 à 1 000 Personnalisable. | 200 | 3 000 | 4 000 | 600 000 |
rmq.u2,20xlarge | 20 000 | 10 000 | 10 000 | 800 000 | |||||
rmq.u2,30xlarge | 30 000 | 15 000 | 12 000 | 1 000 000 | |||||
rmq.u2,40xlarge | 40 000 | 20 000 | 10 000 | 1 200 000 | |||||
rmq.u2,50xlarge | 50 000 | 20 000 | 14 000 | 1 400 000 | |||||
rmq.u2,60xlarge | 60 000 | 22 000 | 16 000 | 1 600 000 | |||||
rmq.u2,70xlarge | 70 000 | 24 000 | 18 000 | 1 700 000 | |||||
rmq.u2,80xlarge | 80 000 | 26 000 | 20 000 | 1 800 000 | |||||
rmq.u2,90xlarge | 90 000 | 28 000 | 24 000 | 2 000 000 | |||||
rmq.u2.100xlarge | 100 000 | 30 000 | 26 000 | 2 200 000 | |||||
rmq.u2.120xlarge | 120 000 | 40 000 | 30 000 | 2 700 000 | |||||
rmq.u2.150xlarge | 150 000 | 50 000 | 38 000 | 3 300 000 | |||||
rmq.u2.200xlarge | 200 000 | 60 000 | 50 000 | 4 500 000 | |||||
rmq.u2.250xlarge | 250 000 | 70 000 | 51 000 | 5 600 000 | |||||
rmq.u2.300xlarge | 300 000 | 80 000 | 52 000 | 6 300 000 | |||||
rmq.u2.350xlarge | 350 000 | 90 000 | 53 000 | 7 500 000 | |||||
rmq.u2.400xlarge | 400 000 | 100 000 | 54 000 | 9 300 000 | |||||
rmq.u2.450xlarge | 450 000 | 120 000 | 60 000 | 10 400 000 | |||||
rmq.u2.500xlarge | 500 000 | 140 000 | 66 000 | 11 600 000 | |||||
rmq.u2.550xlarge | 550 000 | 160 000 | 72 000 | 12 800 000 | |||||
rmq.u2.600xlarge | 600 000 | 200 000 | 80 000 | 14 000 000 | |||||
rmq.u2.1000xlarge | 1 000 000 | 300 000 | 134 000 | 23 200 000 |
Si les quotas de topics et de groupes de consommateurs pour les instances Platinum Edition sont toujours insuffisants pour vos besoins métier, soumettez un ticket.