Pendeln? Wegen mangelnder Interesses verlassen
Trotz der Tatsache, dass das Projekt bereits vor Beginn der produktiven Entwicklung aufgegeben wurde, können Sie in diesem Projekt etwas Gutes für sich selbst aufnehmen
Das Shuttle -Projekt ist eine Reihe von Microservices, die hauptsächlich auf Spring Boot zur Steuerung eines Space Taxi basieren. Im Rahmen dieses Projekts wurden verschiedene Funktionen für die Arbeit mit Raumflügen und Interaktion zwischen Microservices implementiert.
So starten Sie ein Projekt
Befolgen Sie die folgenden Schritte, um das Shuttle -Projekt zu starten:
Voraussetzungen
Stellen Sie sicher, dass Sie die folgende Software auf Ihrem System installiert haben:
- Docker und Docker komponieren
- Java 21 oder neuer
- Gradle 6.8 oder neuer
Schritt 1: Datenbanken einrichten
Für das Projekt sind PostgreSQL- und MongoDB -Datenbanken erforderlich. Sie können sie entweder manuell installieren oder mit Docker einrichten.
Option A: Datenbanken manuell installieren
PostgreSQL :
- Laden Sie Postgresql von der offiziellen Website herunter und installieren Sie sie.
- Starten Sie den PostgreSQL -Dienst.
MongoDB :
- Laden Sie MongoDB von der offiziellen Website herunter und installieren Sie sie.
- Starten Sie den MongoDB -Service.
Option B: Verwenden Sie Docker für Datenbanken
- 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
Schritt 2: Führen Sie Kafka, Zookeeper, Otel-Collector, Prometheus, Graphana aus.
cd docker
docker compose up
Schritt 3: Veröffentlichung bei Maven Local
cd shared
./gradlew publishToMavenLocal
Schritt 4: Erkennung und Konfigurationsserver ausführen
cd discovery-server
./gradlew bootRun
cd ../config-server
./gradlew bootRun
Schritt 5: Führen Sie den Rest der Microservices einzeln aus, da es zu Ihnen passt
Ich entschuldige mich für solche Unannehmlichkeiten, in Zukunft werden alle Microservices über Kybernetes gestartet
Microservices
In der folgenden Liste werden die Microservices des Projekts mit dem Status ihrer Implementierung aufgeführt (diese Liste kann sich aufgrund der Hinzufügung neuer Funktionen und der Refair -Refactoring -Architektur regelmäßig ändern):
- Pilot -Feedback -Dienst und Benutzerfeedback -Dienst (implementiert, nicht getestet) ✅
- Shuttle -Informationsdienst (nicht implementiert)?
- Pilotinformationsservice (nicht implementiert)?
- Benutzerinformationsdienst (nicht implementiert)?
- Pilot -Rang -Service (in Arbeit)?
- Reisepfadfinderservice (in Arbeit)?
- Reiseberechnungsdienst (nicht implementiert)?
- Zahlungsdienst (nicht implementiert)?
- Pilot personenbezogener Datenservice (in Bearbeitung)?
- Auftragsdienst (nicht implementiert)?
- Sender Informationsdienst (nicht implementiert)?
Microservices kommunizieren miteinander über Apache Kafka, das Nachrichten- und Bewertungsaktualisierungen bietet.
Funktionalität?
- Berechnung des Pfades von einem Planeten auf einen anderen unter Berücksichtigung ihrer Bewegung in der Umlaufbahn
- Sammeln und Verarbeitung von Feedback von Benutzern und Piloten.
- Auswahl einer Flugklasse.
- Pilotrangsystem.
- Überprüfung der personenbezogenen Daten von Piloten.
- Berechnung der Kosten eines Fluges aufgrund der Länge und Komplexität des Fluges.
- Implementierung des Zahlungsdienstes unter Berücksichtigung der Shuttle -Kommission (danke, dass Sie uns gewählt haben! ???).
- React App für Dokumentation mit React Flow (es ist sehr schön und großartig !!!!)
Mögliche Funktionalität
- Simulation von Shuttle -Aufschlüssen (ohne das Leben von Passagieren zu gefährden! ???).
- Implementierung im 3D-Raum, so dass es wie die NASA wäre: https://eyes.nasa.gov/apps/Solar-System/#/home
Architektur
Das Projekt verwendet die folgenden Technologien und Ansätze:
- Spring Boot zum Erstellen von Microservices. (Es gibt Ausnahmen, zum Beispiel den Pfadfindungsmikroservice)
- Apache Kafka für die Nachrichtenverarbeitung.
- Opentelometrie, Graphana, Prometheus zur Überwachung und Verfolgung.
- Docker & Kubernetes & Github -Aktionen für die Bereitstellung.
- PGSQL, MongoDB, Redis, Cassandra als Datenbanken.
Diagramme und Metriken
Visualisierung des Shuttle -Bestellprozesses
Das zuvor hier gezeigte Diagramm ist jetzt ungültig
In Zukunft werden alle Dokumentationen, Diagramme, Berechnungen von Metriken wie Dau, Mau usw. als React -Anwendung unter Verwendung von React Flow implementiert. Es wird keine solchen abscheulichen Diagramme mehr geben ???
Installation und Anforderungen
Um das Projekt auszuführen, benötigen Sie die folgenden Tools und Abhängigkeiten:
- Java 17 oder später
- Maven 3.8.1 oder höher
- Docker (optional für die Arbeit mit Containern)
Stellen Sie sicher, dass alle Abhängigkeiten vor Beginn des Projekts installiert und konfiguriert sind.
Lizenz
Stehlen Sie bitte nichts (((((((((
Kontakte?
Wenn Sie Fragen oder Vorschläge haben, können Sie mich über Github -Probleme oder per E -Mail oder per Telegramm kontaktieren.
Shuttle ist das Weltraumtaxi der Zukunft, angetrieben von modernen Microservice -Technologien!