In this series of articles I am going to discuss how to configure and use RabbitMQ with the .NET client libraries. In this first article let’s talk about what message queueing is and then more specifically what RabbitMQ is.
What is Message Queueing
Message queuing gives you a mechanism to allow an application to asynchronously send a message to a receiver. This means that the sender and receiver do not need to interact with the message at the same time. A message is sent to a queue where it is stored until the receiver retrieves the message.
Message queues can be inter-process where the queue resides in memory on a single server or for integrating systems across multiple servers. This can be done by using in-memory queues but it is also common to use durable queues in which the messages are persisted to disk, meaning that messages are not lost should any system or server go offline for any period of time.
Message queuing systems come in many forms—both as commercial proprietry products and as open-source products. An example of a commercial solution is IBM MQ. Examples of open-source message queuing systems include RabbitMQ, JBoss Messaging , and Apache ActiveMQ.