- Quels sont les types de messages autorisés (chaînes de caractères, octets, entiers, etc.) ?
- Quelle est la taille maximale d'un message ?
- Quel est le nombre maximum de files d'attente et d'échanges ?
Réponses
Trop de publicités?-
Théoriquement, tout peut être stocké/envoyé sous forme de message. En fait, vous ne voulez pas stocker quoi que ce soit dans les files d'attente. Le système fonctionne plus efficacement 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 :
- La chose que vous envoyez peut être convertie en et depuis un bytestring.
- Le consommateur sait exactement ce qu'il reçoit et comment le convertir en objet original.
Les chaînes de caractères sont assez faciles, elles ont une méthode intégrée pour convertir les octets. Si vous savez qu'il s'agit d'une chaîne, vous savez comment la reconvertir. La meilleure option est d'utiliser une chaîne de balisage comme XML, JSON ou YML. De cette façon, vous pouvez convertir des objets en chaînes de caractères et revenir aux objets d'origine. Ils fonctionnent dans plusieurs langages de programmation, de sorte que votre consommateur peut être écrit dans un langage différent de celui de votre producteur, à condition qu'il sache 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 objet message. L'objet message possède deux méthodes supplémentaires
toBytes
yfromBytes
qui convertissent vers et depuis le bytestream. J'utilise des clés de routage qui ne laissent aucun doute sur le type de message que le consommateur reçoit. Le message est Serializable. Cela fonctionne bien, mais c'est limitatif car je ne peux l'utiliser qu'avec d'autres programmes Java. -
La taille du message est limitée par la mémoire du serveur et, s'il est persistant, par l'espace libre sur le disque dur. Vous ne souhaitez probablement pas envoyer de messages trop volumineux ; il est préférable d'envoyer une référence à un fichier ou à une base de données.
Vous pouvez également vous renseigner sur leurs mesures de 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égères, vous serez très probablement limité par le nombre de connexions dont vous disposez. Cela dépendra probablement du serveur. Voici quelques informations sur une question similaire : http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2009-February/003042.html
Quelle est la taille maximale d'un message ?
Avant, c'était 2 GiB avant la version 3.8.0 :
%% Trying to send a term across a cluster larger than 2^31 bytes will
%% cause the VM to exit with "Absurdly large distribution output data
%% buffer". So we limit the max message size to 2^31 - 10^6 bytes (1MB
%% to allow plenty of leeway for the #basic_message{} and #content{}
%% wrapping the message body).
-define(MAX_MSG_SIZE, 2147383648).
Référence : https://github.com/rabbitmq/rabbitmq-common/blob/v3.7.21/include/rabbit.hrl#L279
Il a été 512 MiB depuis la version 3.8.0 :
%% Max message size is hard limited to 512 MiB.
%% If user configures a greater rabbit.max_message_size,
%% this value is used instead.
-define(MAX_MSG_SIZE, 536870912).
Référence : https://github.com/rabbitmq/rabbitmq-common/blob/v3.8.0/include/rabbit.hrl#L238
-
Voir Réponse de robthewolf .
-
La taille maximale des messages est de 2 Go, mais l'optimisation des performances pour les messages de cette taille n'est pas efficace. Taille maximale du message
-
Il n'y a pas de limite stricte imposée par le logiciel du serveur RabbitMQ sur le nombre de files d'attente, cependant, le matériel sur lequel le serveur fonctionne peut très bien avoir un impact sur cette limite.
3a. Il n'y a pas de limite de longueur de file d'attente imposée par le serveur par défaut. Vous pouvez toutefois la limiter par le biais d'une politique côté serveur (configuration) ou côté client. Longueur maximale de la file d'attente
Vous trouverez de plus amples informations et des liens sur le site poste connexe .