RabbitMQ la taille du message et les types de
- Quels messages peuvent être stockés dans RabbitMQ les files d'attente? Seules des chaînes de caractères? Ou puis-je sélectionner ce type je veux stocker: int, binaire, corde, etc.?
- Quelle est la taille maximale d'un message?
- Combien de files d'attente ou les échanges peuvent être créés? Ou cela dépend-il de la puissance du serveur?
InformationsquelleAutor tuchk4 | 2013-08-21
Vous devez vous connecter pour publier un commentaire.
Théoriquement, quelque chose peut être stockée ou envoyé un message. Vous ne voulez pas enregistrer quoi que ce soit sur les files d'attente. Le système fonctionne mieux si les files d'attente sont vides la plupart du temps. Vous pouvez envoyer tout ce que vous voulez à la file d'attente avec deux conditions préalables:
Les chaînes sont assez facile, ils ont une méthode intégrée pour la conversion vers et à partir d'octets. Si vous savez que c'est une chaîne de caractères, alors vous savez comment faire pour le convertir en arrière. La meilleure option est d'utiliser un balisage de la chaîne comme XML, JSON, ou YML. De cette façon, vous pouvez convertir des objets à Cordes et revenir à l'original des objets; ils travaillent sur des langages de programmation afin que vos consommateurs peuvent être écrites dans une langue différente à votre producteur aussi longtemps que il sait comment comprendre l'objet.
Je travaille en Java. Je veux envoyer des messages complexes, avec des sous-objets dans les champs. J'utilise mon propre message à l'objet. L'objet du message a deux méthodes supplémentaires
toBytes
etfromBytes
que convertir vers et à partir de la bytestream. J'utilise le routage des touches qui ne laissent aucun doute quant à ce type de message, le consommateur reçoit. Le message est Sérialisable. Cela fonctionne bien, mais il est une limite que je ne peux l'utiliser avec d'autres programmes Java.La taille du message est limitée par la mémoire sur le serveur, et si elle est persistante puis aussi l'espace libre sur disque dur trop. Vous ne voulez probablement pas à envoyer des messages qui sont trop gros; il pourrait être préférable d'envoyer une référence à un fichier ou une base de données.
Vous pouvez également lire sur leurs mesures de la performance:
http://www.rabbitmq.com/blog/2012/04/17/rabbitmq-performance-measurements-part-1/
http://www.rabbitmq.com/blog/2012/04/25/rabbitmq-performance-measurements-part-2/
Les files d'attente sont assez léger, il vous sera probablement limitée par le nombre de connexions que vous avez. Il dépendra le serveur le plus probable. Voici quelques informations sur une question similaire:
http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2009-February/003042.html
Voir robthewolf réponse.
La taille de message maximale est de 2 go, cependant, le réglage des performances pour les messages de cette taille n'est pas efficace. La Taille De Message Maximale
Il n'y a aucune limite imposée par RabbitMQ du Logiciel Serveur sur le nombre de files d'attente, toutefois, le matériel informatique, le serveur est en cours d'exécution sur peut très bien l'impact de cette limite.
3a. Il n'y a pas de longueur de file d'attente de la limite imposée par le serveur par défaut. Vous pouvez, cependant, de limiter ce par le biais de régulation côté serveur (configuration) ou côté client de la politique. Max Longueur De File D'Attente
Il n'y a plus d'informations et de liens sur un related post.
La de taille de message maximale dans RabbitMQ est 2 GiB jusqu'à la version 3.7:
Référence: https://github.com/rabbitmq/rabbitmq-common/blob/v3.7.13/include/rabbit.hrl#L279
Il est maintenant 512 MiB à partir de la version 3.8:
Référence: https://github.com/rabbitmq/rabbitmq-common/blob/master/include/rabbit.hrl#L255