Navette? Abandonné faute d'intérêt
Malgré le fait que le projet a été abandonné avant même le début du développement productif, vous pouvez prendre quelque chose de bien dans ce projet pour vous-même
Le projet de navette est un ensemble de microservices principalement basés sur Spring Boot pour contrôler un taxi spatial. Dans le cadre de ce projet, diverses fonctionnalités ont été mises en œuvre pour travailler avec les vols spatiaux et l'interaction entre les microservices.
Comment lancer un projet
Pour lancer le projet de navette, suivez ces étapes:
Condition préalable
Assurez-vous que le logiciel suivant est installé sur votre système:
- Docker et Docker composent
- Java 21 ou plus récent
- Gradle 6.8 ou plus récent
Étape 1: Configuration des bases de données
Le projet nécessite des bases de données PostgreSQL et MongoDB. Vous pouvez les installer manuellement ou les configurer à l'aide de Docker.
Option A: Installez manuellement les bases de données
PostgreSQL :
- Téléchargez et installez PostgreSQL sur le site officiel.
- Démarrez le service PostgreSQL.
MongoDB :
- Téléchargez et installez MongoDB sur le site officiel.
- Commencez le service MongoDB.
Option B: Utilisez Docker pour les bases de données
- PostgreSQL :
docker pull postgres:latest
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
- MongoDB :
export MONGODB_VERSION=6.0-ubi8
docker run --name mongodb -d mongodb/mongodb-community-server: $MONGODB_VERSION
Étape 2: Exécutez Kafka, Zookeeper, Otel-Collector, Prometheus, Graphana.
cd docker
docker compose up
Étape 3: Publier à Maven Local
cd shared
./gradlew publishToMavenLocal
Étape 4: Exécutez la découverte et le serveur de configuration
cd discovery-server
./gradlew bootRun
cd ../config-server
./gradlew bootRun
Étape 5: Exécutez le reste des microservices un à la fois, car cela vous convient
Je m'excuse pour de tels inconvénients, à l'avenir, tous les microservices seront lancés via Kybernetes
Microservices
La liste suivante répertorie les microservices du projet avec l'état de leur implémentation (cette liste peut changer régulièrement en raison de l'ajout de nouvelles fonctionnalités et de refactorisation d'architecture):
- Service de rétroaction pilote et service de rétroaction des utilisateurs (implémenté, non testé) ✅
- Service d'information sur la navette (non implémenté)?
- Service d'information pilote (non implémenté)?
- Service d'information utilisateur (non implémenté)?
- Service de classement des pilotes (en cours)?
- Service Trip Path Finder (en cours)?
- Service de calcul de voyage (non implémenté)?
- Service de paiement (non mis en œuvre)?
- Service de données personnelles pilotes (en cours)?
- Service de commande (non implémenté)?
- Service d'information de la station (non implémenté)?
Les microservices communiquent entre eux via Apache Kafka, qui fournit des mises à jour de messagerie et de notation.
Fonctionnalité?
- Calcul du chemin d'une planète à une autre, en tenant compte de leur mouvement en orbite
- Collecte et traitement des commentaires des utilisateurs et des pilotes.
- Choisir une classe de vol.
- Système de classement des pilotes.
- Vérification des données personnelles des pilotes.
- Calcul du coût d'un vol en raison de la longueur et de la complexité du vol.
- Mise en œuvre du service de paiement en tenant compte de la Commission de la navette (merci de nous avoir choisi! ???).
- Application React pour la documentation, en utilisant React Flow (c'est très beau et génial !!!!)
Fonctionnalité possible
- Simulation des pannes de navette (sans mettre en danger la vie des passagers! ???).
- Implémentation dans l'espace 3D, afin que ce soit comme la NASA: https://eyes.nasa.gov/apps/solar-system/#/home
Architecture
Le projet utilise les technologies et les approches suivantes:
- Spring Boot pour créer des microservices. (Il y a des exceptions, par exemple, le chemin de la recherche de microservice)
- Apache Kafka pour le traitement des messages.
- OpenTélométrie, Graphana, Prométhée pour la surveillance et le traçage.
- Actions Docker & Kubernetes & GitHub pour le déploiement.
- PGSQL, MongoDB, Redis, Cassandra comme bases de données.
Graphiques et métriques
Visualisation du processus de commande de la navette
Le diagramme précédemment montré ici est maintenant invalide
À l'avenir, toutes les documents, diagrammes, calculs de mesures tels que DAU, MAU et ainsi de suite seront implémentés comme une application React en utilisant le flux React, il n'y aura plus de diagrammes de vils ???
Installation et exigences
Pour exécuter le projet, vous aurez besoin des outils et des dépendances suivants:
- Java 17 ou plus tard
- Maven 3.8.1 ou plus tard
- Docker (facultatif, pour travailler avec des conteneurs)
Assurez-vous que toutes les dépendances sont installées et configurées avant de démarrer le projet.
Licence
Ne volez rien s'il vous plaît (((((
Contacts?
Si vous avez des questions ou des suggestions, vous pouvez me contacter via des problèmes GitHub ou par e-mail ou par télégramme.
La navette est le taxi spatial du futur, tiré par les technologies de microservice modernes!