Project MESALIN is a practical implementation of a distributed message queue using Apache Kafka, with load balancing provided by HAProxy, and monitoring and visualization set up with Prometheus and Grafana.
- Apache Kafka - Distributed Streaming Platform
- HAProxy - Reliable, High Performance TCP/HTTP Load Balancer
- Prometheus - Monitoring system and Time Series Database
- Grafana - Analytics and interactive visualization web application
The following steps guide you through setting up the environment:
- Install Docker and Docker Compose.
- Clone this repository:
git clone https://github.com/MehdiMsa/Distributed_Message_Queue
. - Navigate to the project directory:
cd Distributed_Message_Queue
. - Run
docker-compose up -d
to start up the Docker containers.
Follow these steps to execute the project:
- Verify that all services (Kafka, Zookeeper, HAProxy, Prometheus, and Grafana) are running using
docker ps
. - Run the command through powershell:
.\start_instances.bat
- Alternatively, you can run the producer Python scripts seperately:
python producer.py <id>
. - Alternatively, you can run the consumer Python scripts seperately:
python consumer.py <id>
. - Access the Grafana dashboard at
http://localhost:3000
to visualize the metrics.
- Mehdi M'sallem
- Ines Ktiti
- Ala Boussarsar
- Sarra Ben Rjeb
- Emir Aissa