# 🐇 RabbitMQTest — A Simple RabbitMQ Demo in C#

The **RabbitMQTest** repository by Kandarp Gautam is a C# project that demonstrates how to use [**RabbitMQ**](ca://s?q=RabbitMQ_basics) for message queuing. It shows the basics of a **producer** sending messages and a **consumer** receiving them, making it ideal for beginners exploring asynchronous communication.

🔗 Repository link: [RabbitMQTest (https://github.com/kandarpgautam/RabbitMQTest)](https://github.com/kandarpgautam/RabbitMQTest)

* * *

## 🎯 What It Achieves

*   Demonstrates the **producer–consumer pattern**
    
*   Uses a setup class to declare queues and exchanges
    
*   Provides basic configuration for connecting to RabbitMQ
    

* * *

## 🧩 How the Code Works

*   **RabbitMQSetup**: Declares the queue and prepares RabbitMQ to handle messages
    
*   **Producer**: Publishes messages into the queue
    
*   **Consumer**: Subscribes to the queue and processes messages asynchronously
    
*   **Connection settings**: Link the C# application with the RabbitMQ broker running locally or in Docker
    

This flow illustrates how RabbitMQ decouples services — the producer and consumer don’t need to run at the same time, yet messages are reliably delivered.

* * *

## 🛠️ Setting Up RabbitMQ with Docker

Use the RabbitMQ image with the management plugin to run the broker locally. This provides both the service and a web-based management UI.

*   **Port 5672** → for applications to connect
    
*   **Port 15672** → for the RabbitMQ Management UI (http://localhost:15672)
    
*   Default credentials: `guest / guest`
    

* * *

## 🚀 Steps to Replicate

1.  Clone the repository: [RabbitMQTest (https://github.com/kandarpgautam/RabbitMQTest)](https://github.com/kandarpgautam/RabbitMQTest)
    
2.  Start RabbitMQ in Docker
    
3.  Run the `RabbitMQSetup` project to initialize queues and exchanges
    
4.  Run the `Producer` project to send messages
    
5.  Run the `Consumer` project to process messages
    
6.  Check the Management UI to verify queues and message flow
    

* * *

## 📌 Why This Repo Is Useful

*   A sandbox for learning RabbitMQ basics in C#
    
*   Clear demonstration of the producer–consumer pattern
    
*   Easy to extend into [**work queues**](ca://s?q=RabbitMQ_work_queues) or [**pub/sub**](ca://s?q=RabbitMQ_pub_sub_model) models
