RabbitMQ – Combien de files d’attente RabbitMQ peut-il gérer sur un seul serveur?

Je veux savoir combien de files d’attente maximum RabbitMQ peut gérer sur un seul serveur?

Est-ce que ça dépend de la RAM? Cela dépend-il des processus erlang?

Il n’y a pas de limites codées en dur dans le courtier RabbitMQ. Le courtier utilisera toutes les ressources disponibles (à moins que vous ne fixiez des limites sur certains d’entre eux, ils sont appelés filigranes dans la terminologie RabbitMQ).

Erlang présente certaines limitations, comme le nombre maximal de processus simultanés, mais si, théoriquement, vous pouvez les atteindre sur un seul nœud, il est toujours judicieux d’utiliser des fonctionnalités dissortingbuées .

Il y a beaucoup de discussions sur l’utilisation des ressources RabbitMQ et les limites,

  • Combien de files d’attente un courtier peut-il prendre en charge sur la liste de diffusion RabbitMQ
  • Max messages autorisés dans une queue dans RabbitMQ? sur la liste de diffusion RabbitMQ
  • Rabbitmq – Performances raisonnables / attentes d’échelle sur la défaillance du serveur
  • Y a-t-il une limite au nombre d’échanges pour rabbitmq? sur débordement de stack

PS Il existe cependant une limite de protocole AMQP. Ils sont décrits dans la section 4.9 Limitations

Les spécifications AMQP imposent ces limites aux futures extensions d’AMQP ou de protocoles du même format de niveau filaire:

  • Nombre de canaux par connexion: numéro de canal 16 bits.
  • Nombre de classes de protocole: identifiant de classe 16 bits.
  • Nombre de méthodes par classe de protocole: ID de méthode 16 bits.

Les spécifications AMQP imposent ces limites sur les données:

  • Taille maximale d’une chaîne courte: 255 octets.
  • Taille maximale d’une chaîne longue ou d’une table de champs: taille 32 bits.
  • Taille maximale d’une charge utile de trame: taille 32 bits.
  • Taille maximale d’un contenu: taille 64 bits.

Le serveur ou le client peut également imposer ses propres limites sur les ressources, telles que le nombre de connexions simultanées, le nombre de consommateurs par canal, le nombre de files d’attente, etc. Elles n’affectent pas l’interopérabilité et ne sont pas spécifiées.

Cet article peut vous aider:

http://rabbitmq.1065348.n5.nabble.com/Max-messages-allowed-in-a-queue-in-RabbitMQ-td26063.html

MODIFIER

1) Max files d’attente autorisées dans RabbitMQ?

Des milliers (voire des dizaines de milliers) de files d’attente ne devraient poser aucun problème, bien que chaque object (par exemple, files d’attente, échanges, liaisons, etc.) consum de la mémoire et / ou de l’espace disque. Par défaut, Erlang imposera un nombre maximal de processus concurrents (c.-à-d. Des threads légers) à environ 32768 IIRC. Chaque queue est gérée par son propre processus et chaque connexion peut en générer plusieurs autres. Par conséquent, si vous prévoyez d’avoir un très grand nombre de files d’attente actives dans un seul nœud (?) Et que vous les utilisez toutes simultanément, alors vous peut avoir besoin de modifier les arguments de l’émulateur rabbit passe la machine virtuelle en définissant + P sur une limite supérieure.

Vous êtes également susceptible d’utiliser beaucoup de Gb juste avec le temps système pour chaque queue / connexion assez rapidement, donc vous aurez besoin d’un serveur assez charnu pour gérer des millions des deux. Des dizaines de milliers de personnes ne devraient poser aucun problème, pourvu qu’elles rentrent dans la mémoire vive.