Tamaño y tipos de mensajes de RabbitMQ


  1. ¿Qué mensajes se pueden almacenar en las colas de RabbitMQ? ¿Sólo cuerdas? O puedo seleccionar qué tipo quiero almacenar: int, binario, cadena, etc.?
  2. ¿Cuál es el tamaño máximo de un mensaje?
  3. ¿Cuántas colas o intercambios podrían crearse? ¿O depende de la potencia del servidor?
Author: Benjamin, 2013-08-21

2 answers

  1. Teóricamente cualquier cosa puede ser almacenada/enviada como un mensaje. En realidad no quieres guardar nada en las colas. El sistema funciona más eficientemente si las colas están vacías la mayor parte del tiempo. Puede enviar cualquier cosa que desee a la cola con dos condiciones previas:

    • Lo que está enviando se puede convertir a y desde un bytestring
    • El consumidor sabe exactamente lo que está obteniendo y cómo convertirlo al original objeto

    Las cadenas son bastante fáciles, tienen un método incorporado para convertir hacia y desde bytes. Si sabes que es una cadena, entonces sabes cómo convertirla de nuevo. La mejor opción es usar una cadena de marcado como XML, JSON o YML. De esta manera, puede convertir objetos en Cadenas y volver a los objetos originales; funcionan a través de lenguajes de programación para que su consumidor pueda escribirse en un lenguaje diferente a su productor, siempre y cuando sepa cómo entender el objeto. Trabajo en Java. Quiero enviar mensajes complejos con subobjetos en los campos. Yo uso mi propio objeto de mensaje. El objeto message tiene dos métodos adicionales toBytes y fromBytes que se convierten hacia y desde el bytestream. Uso claves de enrutamiento que no dejan 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 entonces también el espacio libre del disco duro también. Probablemente no desee enviar mensajes que sean demasiado grandes; podría ser mejor enviar una referencia a un archivo o base de datos.

    Es posible que también desee 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-performance-measurements-part-2 /

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

 94
Author: robthewolf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-04 11:22:04
  1. Ver respuesta de robthewolf .

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

  3. No hay un límite estricto impuesto por el software del servidor RabbitMQ en el número de colas, sin embargo, el hardware en el que se ejecuta el servidor puede afectar este límite.

3a. No hay límite de longitud de cola impuesto por el servidor de forma predeterminada. Usted puede, sin embargo, limite esto a través de la directiva del lado del servidor (configuración) o la directiva del lado del cliente. Longitud máxima de cola

Hay más información y enlaces en un post relacionado.

 2
Author: Jerod,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-02 18:29:58