tutorial queues que exchange ejemplos queue rabbitmq message-queue amqp

queues - rabbitmq queue



TamaƱo y tipos de mensajes de RabbitMQ (2)

  1. ¿Qué mensajes podrían almacenarse en las colas de RabbitMQ? ¿Solo cuerdas? ¿O puedo seleccionar qué tipo quiero almacenar: int, binary, string, etc.?
  2. ¿Cuál es el tamaño máximo de un mensaje?
  3. ¿Cuántas colas o intercambios se podrían crear? ¿O depende de la potencia del servidor?

  1. En teoría, cualquier cosa puede ser almacenada / enviada 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 desee a la cola con dos condiciones previas:

    • Lo que está enviando se puede convertir ay desde una cadena de bytes
    • El consumidor sabe exactamente lo que está obteniendo y cómo convertirlo al objeto original

    Las cadenas son bastante fáciles, tienen un método integrado para convertir ay desde bytes. Si sabes que es una cadena, entonces sabes cómo convertirla. La mejor opción es usar una cadena de marcado como XML, JSON o YML. De esta forma, puedes convertir objetos en cadenas y volver a los objetos originales; funcionan a través de los lenguajes de programación para que su consumidor pueda escribir en un idioma diferente a su productor, siempre que sepa cómo entender el objeto. Yo trabajo en Java. Deseo enviar mensajes complejos con sub objetos en los campos. Yo uso mi propio objeto de mensaje El objeto de mensaje tiene dos métodos adicionales toBytes y fromBytes que se convierten hacia y desde el bytestream. Utilizo 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 limitado 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 también. Probablemente no desee enviar mensajes que sean demasiado grandes; podría ser mejor enviar una referencia a un archivo o DB.

    También es posible que 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 livianas, lo más probable es que esté limitado por la cantidad de conexiones que tenga. 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


  1. Ver la respuesta de robthewolf .

  2. El tamaño máximo del mensaje es de 2 GB; sin embargo, la optimización del rendimiento para los mensajes de este tamaño no es efectiva. Tamaño máximo de mensaje

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

3a. No hay 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 cola

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