Skip to content

Diego-Calabretta/DSBD_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

Progetto DSBD Diego Calabretta 1000012346

Il progetto consiste in un sistema di gestione di risultati sportivi e contiene i seguenti microservizi:

Event

È il microservizio di buisness che gestisce eventi sportivi, entità caratterizzata da:
squadraCasa, squadraOspite, puteggioCasa, punteggioOspite, data. Il microservizio contiene il controller con le seguenti API che interagiscono con il database:

1)GET event/all : per accedere a tutti gli eventi
2)GET event/{id}: accedere ad un evento per id
3)GET event/squadra/{squadra}: accedere ad un evento per squadra, che sia squadraOspite o squadraCasa
4)GET event/data/{data(yyyy-mm-dd)}: accedere ad un evento per data
5)POST event/add: aggiungere evento
6)DELETE event/{id}: eliminare evento per id

Event è anche un producer di log con timestamp, ip, metodo, status; il log viene generato ad ogni richiesta ed inviato tramite Kafka al topic logging.

Consumer logging

È un microservizio consumer Kafka sottoscritto al topic logging. Una volta ricevuto il log prodotto da Event, esso viene memorizzato sul database.

API gateway

Il microservizio implementa il pattern API gateway instradando il servizio Event dalla porta "8080" alla porta del gateway "9000" con path "/event/**".

Mysqldb

Microservizio per gestire il database "Sport", esso conterrà le tabelle "event" e "log", le entità create rispettivamente dal servizio Event e da Consumer logging. I parametri del database sono presenti nel file ".env"

Zookeeper, Kafka

Microservizi per gestire il broker e i messaggi Kafka.

-Docker

I microservizi vengono inseriti in containers tramite il file "docker-compose.yml". Pertanto, è possibile fare la build dei containers ed eseguirli tramite i comandi: docker-compose build, docker-compose up

-Kubernetes

Il deployment dei microservizi è gestito tramite il file "deployment.yml". È possibile eseguire il deployment con Minikube con il comando:

kubectl apply -f deployment.yml

-Analisi sulle serie temporali

Le analisi sulle serie temporali sono effettuate in un notebook python
"TS_Analysis_ARIMA.ipynb" contenuto all'interno della cartella "Time Series Analysis". Col notebook è possibile fare un'analisi auto ARIMA, il dataset da utilizzare per l'analisi può essere creato con lo script "CSV_creator.py", esso attinge dal database dei log e crea un file .CSV con numero di richieste ricevuto per giorno. Il file creato verrà nominato "Stats.csv", tuttavia il vero file utilizzato nell' analisi è "Stats_test.csv", un file creato appositamente con lo stesso formato del primo, ma con un numero sufficiente di campioni per allenare un modello.

About

Progetto universitario per l'esame di DISTRIBUTED SYSTEMS AND BIG DATA

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published