Odyssey peut augmenter considérablement les performances de traitement en spécifiant un certain nombre de threads de travail supplémentaires. Chaque thread de travail est responsable de l'authentification et du proxy des requêtes client-serveur et serveur-client. Tous les threads de travail partagent des pools de connexions au serveur global. La conception multithread joue un rôle important dans les performances SSL/TLS
.
Odyssey suit l'état actuel de la transaction et, en cas de déconnexion inattendue du client, peut émettre Cancel
automatique de la connexion et effectuer Rollback
de la transaction abandonnée, avant de remettre la connexion du serveur au pool de serveurs pour la réutiliser. De plus, le client propriétaire de la dernière connexion au serveur est mémorisé afin de réduire le besoin de configurer des options client pour chaque affectation client-serveur.
Odyssey permet de définir des pools de connexions comme une paire de Database
et User
. Chaque pool défini peut avoir des paramètres d'authentification, de mode de pooling et de limites distincts.
Odyssey dispose d'une prise en charge complète SSL/TLS
et de méthodes d'authentification courantes telles que : md5
et clear text
pour l'authentification du client et du serveur. Odyssey prend en charge l'authentification PAM et LDAP, cette méthode fonctionne de la même manière que l'authentification clear text
sauf qu'elle utilise PAM/LDAP pour valider les paires nom d'utilisateur/mot de passe. PAM vérifie éventuellement le nom d'hôte distant connecté ou l'adresse IP. De plus, cela permet de bloquer chaque utilisateur du pool séparément.
Odyssey génère des identifiants universellement uniques uuid
pour les connexions client et serveur. Tous les événements de journal et réponses d'erreur du client incluent l'identifiant, qui peut ensuite être utilisé pour identifier de manière unique le client et suivre les actions. Odyssey peut enregistrer les événements du journal dans un fichier journal et à l'aide de l'enregistreur système.
Odyssey prend en charge plusieurs options de ligne de commande. Utilisez /path/to/odyssey
--help pour en savoir plus
Odyssey possède une architecture multithread asynchrone sophistiquée qui est pilotée par un moteur de coroutine sur mesure : machinarium. L'idée principale derrière la conception de coroutines est de donner aux applications asynchrones basées sur des événements l'apparence et la sensation d'être écrites de manière procédurale synchrone au lieu d'utiliser l'approche de rappel traditionnelle.
L'un des objectifs principaux était de rendre la base de code compréhensible pour les nouveaux développeurs et de créer une architecture facilement extensible pour un développement futur.
Plus d'informations : Architecture et internes.
Actuellement, Odyssey ne fonctionne que sous Linux. Les plates-formes prises en charge sont x86/x86_64.
Pour construire, vous aurez besoin de :
git clone git://github.com/yandex/odyssey.git
cd odyssey
make local_build
Adaptez odyssey-dev.conf puis :
make local_run
Alternativement :
make console_run
make start-dev-env
Configurez votre CLion pour créer un projet dans un conteneur, manuellement.