This project demonstrates a multi-producer, single-consumer architecture using Apache Kafka. Three different producers send messages to separate Kafka topics, and a single consumer listens to all topics, processing messages and logging errors into a PostgreSQL database.
- Apache Kafka (message broker)
- Python (for producers & consumer)
- PostgreSQL (database for error logging)
- Docker (for Kafka & PostgreSQL setup)
kafka_project/
├── docker-compose.yml # Kafka & PostgreSQL setup
├── producer_1.py # Temperature sensor producer
├── producer_2.py # User activity producer
├── producer_3.py # Error log producer
├── consumer.py # Kafka consumer processing messages
├── README.md # Project documentation
- Producer 1 sends temperature sensor data to
sensor-datatopic. - Producer 2 sends user activity logs to
user-logstopic. - Producer 3 sends system errors to
error-logstopic. - Consumer listens to all three topics and logs any errors into the
error_messagestable in PostgreSQL.
- Start Kafka and PostgreSQL:
docker compose up -d
- Start the consumer:
python consumer.py
- Start the producers (in separate terminals):
python producer_1.py python producer_2.py python producer_3.py
- Verify error logging in PostgreSQL:
SELECT * FROM error_messages;
Αυτό το project δείχνει μια αρχιτεκτονική πολλαπλών producers και ενός consumer χρησιμοποιώντας Apache Kafka. Τρεις διαφορετικοί producers στέλνουν μηνύματα σε ξεχωριστά Kafka topics, και ένας consumer τα επεξεργάζεται, καταγράφοντας τυχόν σφάλματα στη βάση PostgreSQL.
- Apache Kafka (μηχανισμός ανταλλαγής μηνυμάτων)
- Python (για τους producers & consumer)
- PostgreSQL (για αποθήκευση errors)
- Docker (για Kafka & PostgreSQL setup)
kafka_project/
├── docker-compose.yml # Ρύθμιση Kafka & PostgreSQL
├── producer_1.py # Producer αισθητήρα θερμοκρασίας
├── producer_2.py # Producer καταγραφής δραστηριότητας χρήστη
├── producer_3.py # Producer καταγραφής errors
├── consumer.py # Consumer που διαχειρίζεται τα μηνύματα
├── README.md # Τεκμηρίωση έργου
- Ο Producer 1 στέλνει δεδομένα αισθητήρων θερμοκρασίας στο topic
sensor-data. - Ο Producer 2 στέλνει δραστηριότητες χρηστών στο topic
user-logs. - Ο Producer 3 στέλνει errors στο topic
error-logs. - Ο Consumer ακούει και τα τρία topics και καταγράφει τα errors στον πίνακα
error_messagesτης PostgreSQL.
- Ξεκινήστε το Kafka και τη βάση PostgreSQL:
docker compose up -d
- Εκκινήστε τον consumer:
python consumer.py
- Εκκινήστε τους producers (σε ξεχωριστά terminals):
python producer_1.py python producer_2.py python producer_3.py
- Επαληθεύστε τα errors στη βάση PostgreSQL:
SELECT * FROM error_messages;