¿Por qué necesitamos usar rabbitmq?

¿Por qué necesitamos RabbitMQ cuando tenemos un marco de red más poderoso en Python llamado Twisted? Estoy tratando de entender la razón por la cual alguien querría usar RabbitMQ.

¿Podría por favor proporcionar un escenario o un ejemplo utilizando RabbitMQ?

Además, ¿dónde puedo encontrar un tutorial sobre cómo usar RabbitMQ?

Permítame decirle algunas razones que hacen que el uso de MOM (Middleware Orientado a Mensajes) sea probablemente la mejor opción.

Desacoplamiento

Puede desacoplar / separar los componentes principales de la aplicación. No hay necesidad de traer todos los beneficios de la architecture desacoplada aquí. Solo quiero señalar que este es uno de los requisitos principales para escribir un software de calidad y mantenible.

Flexibilidad:

En realidad, es muy fácil conectar dos aplicaciones totalmente diferentes escritas en diferentes idiomas usando el protocolo AMQP. Estas aplicaciones se comunicarán entre sí con la ayuda de un “traductor” que es MOM.

Escalabilidad

Usando MOM podemos escalar el sistema horizontalmente. Un productor de mensajes puede transmitir a una cantidad ilimitada de consumidores de mensajes una tarea, un comando o un mensaje para procesar y escalar este sistema. Todo lo que necesitamos hacer es crear nuevos consumidores de mensajes. Digamos que estamos obteniendo 1000 imágenes por segundo y debemos cambiar su tamaño. Resolver este problema con métodos tradicionales podría ser un dolor de cabeza. Con MOM podemos transmitir imágenes a los consumidores de mensajes que pueden hacer su trabajo de forma asíncrona y asegurarnos de que la integridad de los datos esté intacta.

Son otros beneficios de usar MOM también, pero estos 3 son los más significativos en mi opinión.

Twisted no es una implementación de cola. Además, RabbitMQ ofrece funciones de cola de nivel empresarial e implementa el protocolo AMQP que a menudo se necesita en un mundo empresarial.

Twisted es una biblioteca de redes que implementa una serie de protocolos de red, además de permitirte crear los tuyos. Uno de los protocolos que puede usar con Twisted es AMQP https://launchpad.net/txamqp

RabbitMQ es un agente de AMQP, es decir, un servicio que se ejecuta fuera de su aplicación, probablemente en un grupo de servidores separados. AMQP es simplemente el protocolo que se utiliza para comunicarse con un agente de colas de mensajes como RabbitMQ. Tienes muchas cosas de RabbitMQ. Puede enviar mensajes de forma persistente con una entrega garantizada para que lleguen incluso si su aplicación falla, e incluso si el agente RabbitMQ termina siendo reiniciado. Obtiene el equilibrio de carga entre los consumidores de mensajes si tiene varios consumidores en la misma cola. Obtiene interoperabilidad con aplicaciones en otros idiomas siempre que utilice un formato de serialización razonablemente abierto para los cuerpos de sus mensajes. AMQP le permite dividir una aplicación monolítica en muchas partes acopladas libremente que pueden ejecutarse en diferentes servidores. Esta es una gran ganancia para el mantenimiento a largo plazo de una aplicación.

rabbitmq es un poco más que un simple mensaje … es una plataforma común que tiene la capacidad de interconectar aplicaciones. Al usar rabbitmq, una aplicación java puede hablar con un servidor linux y / o una aplicación .net, con un ruby ​​& rails + casi cualquier cosa que encuentre su lugar en el desarrollo web corporativo. Y lo más importante es que implementa el modelo “dispara y olvida” propuesto por AMQP. Es simplemente un reemplazo perfecto para JMS o ESB … especialmente si se trata de una architecture multiplataforma, con una garantía de fiabilidad. Incluso hay una característica especial llamada RPC (llamada a procedimiento remoto) que se agrega a la facilidad de desarrollo en el arco distribuido.

Aparte de todo esto, en el mundo servicios financieros como la Bolsa de Valores o el mercado de acciones donde se requiere una gran cantidad de enrutamiento confiable y eficiente (suponga que no conoce el número real de personas suscritas a sus servicios, pero desea asegurarse de que alguien lo haga por lo tanto, recibe sus pings ya sea que estén conectados en este momento, o se conectarán más adelante), las reglas de rabbitmq porque se basan en ERLANG y la plataforma Open-telecom que asegura un alto rendimiento al utilizar los recursos mínimos. Para obtener la introducción más conveniente a rabbitmq, visite rabbitmq.com/getstarted.html para conocer su lenguaje de desarrollo nativo.

RabbitMQ es una implementación de AMQP , que define un protocolo interoperable para middleware orientado a mensajes. Como tal, define la semántica para la creación, publicación, enrutamiento y consumo de mensajes que se pueden implementar en cualquier plataforma.

Conceptualmente, podría considerarse como una especialización de un motor de red como Twisted, pero basado en un estándar aceptado por la industria.

Aquí hay un blog de Ross Mason que analiza el interés de publicación-suscripción interoperable con AMQP: http://blogs.mulesoft.org/inter-operable-publishsubscribe-with-amqp/

Yo uso RabbitMQ como agente de mensajes para el apio .

Además, he trabajado con Twisted. Es diferente

Vea aquí para más información sobre AMQP : http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol