EasyNetQ es una biblioteca para .NET que nos permite conectarnos de forma sencilla con RabbitMQ desde una aplicación escrita en C#.
RabbitMQ es una implementación de código abierto del protocolo Advanced Message Queuing Protocol (AMQP) y se utiliza ampliamente como middleware de mensajería en aplicaciones distribuidas.
EasyNetQ proporciona una abstracción de alto nivel sobre RabbitMQ, simplificando el proceso de configuración y uso de colas, intercambios y mensajes.
La biblioteca proporciona un modelo simplificado de publicación y suscripción, que facilita mucho el trabajo con RabbitMQ. Además, también ofrece soporte para patrones de mensajería avanzados, como el enrutamiento basado en rutas, la suscripción a múltiples colas, entre otros.
Por otro lado, EasyNetQ maneja automáticamente las conexiones a RabbitMQ por nosotros. Proporciona una conexión persistente con RabbitMQ y se encarga de la reconexión en caso de desconexiones inesperadas.
En definitiva, la librería proporciona todas las opciones y funcionalidades para explotar al máximo RabbitMQ, evitándonos la mayor parte de la dificultad.
Cómo usar EasyNetQ
Podemos añadir la biblioteca a un proyecto de .NET fácilmente, a través del paquete Nuget correspondiente.
Install-Package EasyNetQ
Usar EasyNetQ es muy sencillo. Básicamente creamos un Bus de comunicación usando una conectionString, y después usamos los métodos disponibles.
Por ejemplo, así realizaríamos la publicación de un mensaje.
var bus = RabbitHutch.CreateBus("host=localhost");
await bus.PubSub.PublishAsync(message);
Y así la suscripción y recepción de mensajes.
var bus = RabbitHutch.CreateBus("host=localhost");
await bus.PubSub.SubscribeAsync<MyMessage>(
"my_subscription_id", msg => Console.WriteLine(msg.Text)
);
EasyNetQ ofrece muchas más opciones y funcionalidades, como la posibilidad de establecer colas duraderas, publicar mensajes de forma asincrónica y utilizar diferentes estrategias de serialización. Para obtener más información, consulte la documentación de EasyNetQ.
EasyNetQ es Open Source, y todo el código y documentación está disponible en el repositorio del proyecto https://easynetq.com/ en https://github.com/EasyNetQ/EasyNetQ