Odyssey kann die Verarbeitungsleistung durch die Angabe einer Reihe zusätzlicher Arbeitsthreads erheblich skalieren. Jeder Arbeitsthread ist für die Authentifizierung und Weiterleitung von Client-zu-Server- und Server-zu-Client-Anfragen verantwortlich. Alle Arbeitsthreads teilen sich globale Serververbindungspools. Das Multithread-Design spielt eine wichtige Rolle für SSL/TLS
-Leistung.
Odyssey verfolgt den aktuellen Transaktionsstatus und kann im Falle einer unerwarteten Client-Verbindungstrennung automatisch die Verbindung Cancel
und Rollback
der abgebrochenen Transaktion durchführen, bevor die Serververbindung zur Wiederverwendung wieder in den Server-Pool zurückgeführt wird. Darüber hinaus wird der Client des letzten Serververbindungseigentümers berücksichtigt, um die Notwendigkeit zum Einrichten von Clientoptionen für jede Client-zu-Server-Zuweisung zu reduzieren.
Odyssey ermöglicht die Definition von Verbindungspools als Paar aus Database
und User
. Jeder definierte Pool kann über separate Authentifizierungs-, Pooling-Modus- und Grenzwerteinstellungen verfügen.
Odyssey bietet umfassende SSL/TLS
Unterstützung und gängige Authentifizierungsmethoden wie md5
und clear text
sowohl für die Client- als auch für die Serverauthentifizierung. Odyssey unterstützt PAM- und LDAP-Authentifizierung. Diese Methode funktioniert ähnlich wie clear text
, außer dass sie PAM/LDAP zur Validierung von Benutzernamen-/Passwortpaaren verwendet. PAM überprüft optional den Namen oder die IP-Adresse des verbundenen Remote-Hosts. Darüber hinaus ist es möglich, jeden Poolbenutzer separat zu sperren.
Odyssey generiert universell eindeutige uuid
-Identifikatoren für Client- und Serververbindungen. Alle Protokollereignisse und Client-Fehlerantworten enthalten die ID, die dann zur eindeutigen Identifizierung des Clients und zur Nachverfolgung von Aktionen verwendet werden kann. Odyssey kann Protokollereignisse in einer Protokolldatei speichern und den Systemlogger verwenden.
Odyssey unterstützt mehrere Befehlszeilenoptionen. Verwenden Sie /path/to/odyssey
--help, um mehr zu sehen
Odyssey verfügt über eine ausgefeilte asynchrone Multithread-Architektur, die von einer maßgeschneiderten Coroutine-Engine angetrieben wird: Machinarium. Die Hauptidee des Coroutine-Designs besteht darin, ereignisgesteuerte asynchrone Anwendungen so aussehen und anfühlen zu lassen, als wären sie auf synchron-prozedurale Weise geschrieben worden, anstatt den traditionellen Callback-Ansatz zu verwenden.
Eines der Hauptziele bestand darin, die Codebasis für neue Entwickler verständlich zu machen und eine Architektur für zukünftige Entwicklungen leicht erweiterbar zu machen.
Weitere Informationen: Architektur und Interna.
Derzeit läuft Odyssey nur unter Linux. Unterstützte Plattformen sind x86/x86_64.
Zum Bauen benötigen Sie:
git clone git://github.com/yandex/odyssey.git
cd odyssey
make local_build
Passen Sie dann odyssey-dev.conf an:
make local_run
Alternativ:
make console_run
make start-dev-env
Richten Sie Ihr CLion-to-Build-Projekt im Container manuell ein.