Torma Kristóf
36b60752af
All checks were successful
continuous-integration/drone/push Build is passing
|
||
---|---|---|
gradle/wrapper | ||
src/main/kotlin | ||
.drone.yml | ||
.gitignore | ||
build.gradle.kts | ||
CommonStarling_102761_45.wav | ||
docker-compose.yml | ||
Dockerfile | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
README.md | ||
settings.gradle.kts | ||
test.py |
Kotlin-alapú mikroszolgáltatás rendszer
Az általam elkészített házi feladat egy teljesen Kotlinban készült mikroszolgáltatás alapú rendszer. Szerettem volna kipróbálni egy elkészült rendszert milyen egyszerű Kotlinban újraimplementálni. Emiatt az itt található architektúra két mikroszolgáltatását valósítottam meg, valamint a kettő között található rendszert egy egyszerű mockoló komponensel helyettesítettem.
Input Service
Képes állományok fogadására, valamint azokról metaadatok letárolására. Amint ez sikeresen megtörtént, message queue-n küld értesítést a feldolgozó egység felé. Letárolja a beérkezett fájlokat, de fontos, hogy ezek kiszolgálását végző microservice nem része a kísérleti rendszernek! Lekérdezhető tőle az egyes beküldött minták metaadatai és az összes ilyen adat is.
Message Queue Glue
Fogadja az egyik queue-n érkező adatokat, azok mesterséges intelligenciával történő feldolgozását. Az eredményt publikálja egy másik üzenetsoron.
Independent Results Service / Relational Output Service
Az üzenetsoron kapott eredményeket letárolja relációs adatbázisban, ezek lekérdezhetők REST API segítségével.
A rendszer kipróbálása
A teljes rendszer, minden függőségével elindítható Docker Compose segítségével. Előre elkészítettem egy docker-compose.yml állományt, ahol a teljes rendszer le lett írva. Ezt docker-compose up parancs segítségével lehet indítani. Állományok beküldésére az elkészített test.py Python scriptet ajánlom. A többi endpoint tetszőleges HTTP kliens segítségével próbálható. Az Input Service a 127.0.0.1:8080, míg az Independent Results Service a 127.0.0.1:8081 címen érhető el.