Saltar al contenido

¿Cuáles son los límites de mensajes, colas e intercambios en RabbitMQ?

Deseamos enseñarte la mejor solución que descubrimos en todo internet. Nosotros deseamos que te sea de ayuda y si quieres aportar alguna mejora siente la libertad de hacerlo..

Solución:

  1. En teoría, cualquier cosa se puede almacenar/enviar como un mensaje. En realidad, no desea almacenar nada en las colas. El sistema funciona de manera más eficiente si las colas están vacías la mayor parte del tiempo. Puede enviar lo que quiera a la cola con dos condiciones previas:

    • Lo que está enviando se puede convertir a y desde una cadena de bytes
    • El consumidor sabe exactamente lo que está recibiendo y cómo convertirlo en el objeto original.

    Las cadenas son bastante fáciles, tienen un método incorporado para convertir a y desde bytes. si sabes que es un string entonces sabes cómo convertirlo de nuevo. La mejor opción es usar un marcado string como XML, JSON o YML. De esta forma, puede convertir objetos en cadenas y volver a los objetos originales; funcionan en todos los lenguajes de programación para que su consumidor pueda escribirse en un idioma diferente al de su productor, siempre que sepa cómo entender el objeto. Trabajo en Java. Quiero enviar mensajes complejos con subobjetos en los campos. Uso mi propio objeto de mensaje. El objeto de mensaje tiene dos métodos adicionales toBytes y fromBytes que convierten hacia y desde el flujo de bytes. yo uso enrutamiento keys que no dejen dudas sobre qué tipo de mensaje está recibiendo el consumidor. El mensaje es serializable. Esto funciona bien, pero es limitante ya que solo puedo usarlo con otros programas Java.

  2. El tamaño del mensaje está limitado por la memoria en el servidor y, si es persistente, también el espacio libre en el disco duro. Probablemente no desee enviar mensajes que sean demasiado grandes; podría ser mejor enviar una referencia a un archivo o base de datos.

    También puede leer sobre sus medidas de rendimiento: http://www.rabbitmq.com/blog/2012/04/17/rabbitmq-performance-measurements-part-1/ http://www.rabbitmq.com/ blog/2012/04/25/rabbitmq-rendimiento-medidas-parte-2/

  3. Las colas son bastante livianas, lo más probable es que esté limitado por la cantidad de conexiones que tiene. Dependerá del servidor más probable. Aquí hay información sobre una pregunta similar: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2009-February/003042.html

¿Cuál es el tamaño máximo de un mensaje?

El tamaño máximo de mensaje en RabbitMQ solía ser 2 GiB antes de la versión 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).

Referencia: https://github.com/rabbitmq/rabbitmq-common/blob/v3.7.21/include/rabbit.hrl#L279

Ha sido 512 MB desde la versión 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).

Referencia: https://github.com/rabbitmq/rabbitmq-common/blob/v3.8.0/include/rabbit.hrl#L238

  1. Ver la respuesta de robthewolf.

  2. El tamaño máximo del mensaje es de 2 GB; sin embargo, el ajuste del rendimiento para mensajes de este tamaño no es efectivo. Tamaño máximo de mensaje

  3. El software de servidor RabbitMQ no impone un límite estricto en la cantidad de colas, sin embargo, el hardware en el que se ejecuta el servidor puede muy bien afectar este límite.

3a. No existe un límite de longitud de cola impuesto por el servidor de forma predeterminada. Sin embargo, puede limitar esto a través de la política del lado del servidor (configuración) o la política del lado del cliente. Longitud máxima de la cola

Hay más información y enlaces en una publicación relacionada.

valoraciones y comentarios

Si conservas alguna indecisión y disposición de perfeccionar nuestro sección te mencionamos ejecutar una aclaración y con deseo lo ojearemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *