RabbitMQ - combien de files D'attente RabbitMQ peut 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 cela dépend de RAM? Il ne dépend processus erlang?

41
demandé sur Codesleuth 2014-04-10 17:43:31

2 réponses

il n'y a pas de limites codées à L'intérieur de RabbitMQ broker. Le courtier utilisera toutes les ressources disponibles (à moins que vous ne fixiez des limites à certaines d'entre elles, elles sont appelées filigranes dans la terminologie RabbitMQ).

il y a quelques limites mises par Erlang lui-même, comme le nombre maximum de processus concurrents, mais si vous pouvez théoriquement les atteindre sur un seul noeud, alors il est toujours bon d'utiliser fonctions distribuées .

Il y a beaucoup de discussions à propos de RabbitMQ de l'utilisation des ressources et les limites de la

P. S. Il y a cependant une limite du protocole AMQP. Ils sont décrits dans la section 4.9 Limitations

les spécifications de L'AMQP imposent ces limites aux futures extensions de AMQP ou de protocoles dans le même fil-format:

  • nombre de canaux par connexion: Nombre de canaux 16 bits.
  • nombre de classes de protocole: id de classe de 16 bits.
  • nombre de méthodes par classe de protocole: code de méthode de 16 bits.

les spécifications de L'AMQP imposent ces limites aux données:

  • taille Maximale d'une chaîne courte: 255 octets.
  • taille maximale d'une longue chaîne ou table de champ: 32 bits.
  • taille maximale d'une charge utile de trame: 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 comme le nombre de connexions simultanées, le nombre de consommateurs par canal, nombre de files d'attente, etc. Elles n'affectent pas l'interopérabilité et ne sont pas spécifiés.

34
répondu pinepain 2017-05-23 12:32:33

Ce post peut vous aider à:

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

MODIFIER

1) les files D'attente Max sont permises à RabbitMQ?

des milliers (ou même des dizaines de milliers) de files d'attente ne devraient pas être un problème du tout, bien que chaque objet (par exemple, les files d'attente, les échanges, les reliures, etc) ) va prendre un peu de mémoire et/ou de l'espace disque. Par défaut, Erlang va appliquer un nombre maximal de processus concurrents (c.-à-d. légers) threads) aux environs de 32768 IIRC. Chaque file d'attente est gérée par son propre processus et chaque connexion peut entraîner plusieurs plus, donc si vous êtes prévoyez en avoir un très grand nombre de files actives dans un seul nœud (?) et de les utiliser tous en même temps, alors vous devrez peut-être modifier les arguments de l'émulateur limite.

vous êtes également susceptible d'utiliser jusqu'à beaucoup de Go juste avec les frais généraux pour chaque file d'attente / connexion assez rapide, de sorte que vous allez avoir besoin d'un assez charnue serveur pour gérer des millions de fois. Des dizaines de milliers devraient être non problème du tout, à condition qu'ils s'inscrivent dans la mémoire vive.

19
répondu Gabriele 2014-04-10 15:11:48