RabbitMQ based microservice messaging framework
Project description
RabbitMQ Messaging Application
Overview
The RabbitMQ Messaging Application is a scalable and fault-tolerant messaging system that demonstrates asynchronous communication between distributed components using a message broker architecture.
This project implements producer-consumer messaging patterns using RabbitMQ, enabling reliable, decoupled, and high-performance data exchange between services.
Key Features
- Asynchronous message publishing (Producer)
- Reliable message consumption (Consumer)
- Queue-based messaging using RabbitMQ (AMQP protocol)
- Guaranteed message delivery with acknowledgments
- Scalable architecture for distributed systems
- Robust error handling and logging mechanisms
- Easily extensible for microservices integration
Technology Stack
- Message Broker: RabbitMQ
- Protocol: AMQP 0-9-1
- Programming Language: Java / Python / Node.js / .NET (as applicable)
- Frameworks: (Spring Boot / Express / Flask / .NET Core) (if applicable)
- Build Tools: Maven / npm / pip
- Logging: Built-in logging framework / Log4j / Winston / etc.
Prerequisites
Before running this project, ensure the following are installed:
- RabbitMQ Server
- Erlang (dependency for RabbitMQ)
- Language runtime (JDK / Python / Node.js / .NET SDK)
- Package manager (Maven / npm / pip)
Installation & Setup
1. Clone the Repository
git clone:https://github.com/vigneshAnnadurai01/rabbitmq-lite.git
cd rabbitmq-lite
# ๐ฉ RabbitMQ Multi-Agent Messaging System
A Python-based message-driven system using RabbitMQ where a single publisher sends messages to multiple queues and different agents process them concurrently.
## ๐ Installation & Setup
1๏ธโฃ Prerequisites
Install Python
Make sure Python 3.10+ is installed
python --version
Install RabbitMQ
Windows Setup
Install Erlang
https://www.erlang.org/downloads
Install RabbitMQ Server
https://www.rabbitmq.com/download.html
Enable management plugin:
rabbitmq-plugins enable rabbitmq_management
Start RabbitMQ:
rabbitmq-server
๐ Dashboard:
http://localhost:15672
Username: guest
Password: guest
Ubuntu/Linux
sudo apt update
sudo apt install rabbitmq-server -y
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
2๏ธโฃ Project Setup
Clone / Navigate project
cd F:\rabbit\src\rabbitmq_lite
Create Virtual Environment
python -m venv venv
venv\Scripts\activate # Windows
Install dependencies
pip install pika
## ๐ Project Architecture
main.py (Publisher)
โ
RabbitMQ Queues
โ
aggregator.py (Consumer Manager)
โ
Agents:
โโโ AccountAgent
โโโ BillingAgent
โโโ DocumentAgent
โโโ SupportAgent
## How to Run (IMPORTANT)
STEP 1: Start RabbitMQ Server
rabbitmq-server
STEP 2: Start Consumers
Open new terminal:
python aggregator.py
๐ You should see:
๐ Listening on account_queue
๐ Listening on billing_queue
๐ Listening on document_queue
๐ Listening on support_queue
STEP 3: Send Messages (Publisher)
Open another terminal:
python main.py
## ๐ค Message Flow
main.py sends payload
โ
4 queues receive message
โ
Each Agent processes independently
## ๐งพ Sample Payload
{
"user_id": 1000,
"name": "Vignesh",
"amount": 500,
"doc_id": "DOC001",
"ticket_id": "TKT001"
}
## Agents Responsibilities
AccountAgent โ User/account processing
BillingAgent โ Payment & billing logic
DocumentAgent โ Document handling
SupportAgent โ Ticket management
## ๐ Expected Output
aggregator.py
๐ Listening on account_queue
๐ Listening on billing_queue
๐ Listening on document_queue
๐ Listening on support_queue
main.py
Message sent to all queues
## โ ๏ธ Common Issues
โ RabbitMQ not connecting
โ Ensure server is running:
rabbitmq-server
โ No message received
โ aggregator.py must be running before main.py
โ Queue not found
โ Run publisher once โ queues auto-create
## ๐ฅ Run Order (VERY IMPORTANT)
1. Start RabbitMQ Server
2. Run aggregator.py
3. Run main.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rabbitmq_lite-0.1.4.tar.gz.
File metadata
- Download URL: rabbitmq_lite-0.1.4.tar.gz
- Upload date:
- Size: 12.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2a14a97876ffd8bc0c5ac24fb0579aba4c7e728a72faa2b8cd43fb6f5e25db2
|
|
| MD5 |
8ba641777b29941d68406400f82b5870
|
|
| BLAKE2b-256 |
c19186e91f9f656955f0d8ff8d60b51dd91f9336c47f6db7e1e45e1219c64479
|
Provenance
The following attestation bundles were made for rabbitmq_lite-0.1.4.tar.gz:
Publisher:
publish.yml on vigneshAnnadurai01/rabbitmq-lite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rabbitmq_lite-0.1.4.tar.gz -
Subject digest:
e2a14a97876ffd8bc0c5ac24fb0579aba4c7e728a72faa2b8cd43fb6f5e25db2 - Sigstore transparency entry: 1870012909
- Sigstore integration time:
-
Permalink:
vigneshAnnadurai01/rabbitmq-lite@3381abfa5376101e28db6e89a465ec1d1aa7899d -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/vigneshAnnadurai01
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3381abfa5376101e28db6e89a465ec1d1aa7899d -
Trigger Event:
release
-
Statement type:
File details
Details for the file rabbitmq_lite-0.1.4-py3-none-any.whl.
File metadata
- Download URL: rabbitmq_lite-0.1.4-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b32afbabf956cab9c2fe5777ca2f37b511578af76443336442e8b749a8da16b4
|
|
| MD5 |
d80b278b76bcf96992fa7adb9acc7778
|
|
| BLAKE2b-256 |
75b7ad5f72dd7f5799f0ee0c3ee002bad5c63ffbcf114f543479535ea395dcd2
|
Provenance
The following attestation bundles were made for rabbitmq_lite-0.1.4-py3-none-any.whl:
Publisher:
publish.yml on vigneshAnnadurai01/rabbitmq-lite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rabbitmq_lite-0.1.4-py3-none-any.whl -
Subject digest:
b32afbabf956cab9c2fe5777ca2f37b511578af76443336442e8b749a8da16b4 - Sigstore transparency entry: 1870012933
- Sigstore integration time:
-
Permalink:
vigneshAnnadurai01/rabbitmq-lite@3381abfa5376101e28db6e89a465ec1d1aa7899d -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/vigneshAnnadurai01
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3381abfa5376101e28db6e89a465ec1d1aa7899d -
Trigger Event:
release
-
Statement type: