Odyssey puede escalar significativamente el rendimiento del procesamiento especificando una cantidad de subprocesos de trabajo adicionales. Cada subproceso de trabajo es responsable de la autenticación y el proxy de las solicitudes de cliente a servidor y de servidor a cliente. Todos los subprocesos de trabajo comparten grupos de conexiones de servidores globales. El diseño de subprocesos múltiples juega un papel importante en el rendimiento SSL/TLS
.
Odyssey rastrea el estado actual de la transacción y, en caso de una desconexión inesperada del cliente, puede emitir Cancel
automática de la conexión y realizar Rollback
de la transacción abandonada, antes de devolver la conexión al servidor al grupo de servidores para su reutilización. Además, se recuerda al cliente propietario de la última conexión del servidor para reducir la necesidad de configurar opciones de cliente en cada asignación de cliente a servidor.
Odyssey permite definir grupos de conexiones como un par de Database
y User
. Cada grupo definido puede tener configuraciones de límites, modo de agrupación y autenticación independientes.
Odyssey tiene soporte SSL/TLS
con todas las funciones y métodos de autenticación comunes como: md5
y clear text
tanto para la autenticación del cliente como del servidor. Odyssey admite la autenticación PAM y LDAP; este método funciona de manera similar a la autenticación clear text
, excepto que utiliza PAM/LDAP para validar los pares de nombre de usuario/contraseña. PAM opcionalmente verifica el nombre del host remoto conectado o la dirección IP. Además permite bloquear a cada usuario de la piscina por separado.
Odyssey genera identificadores universalmente únicos uuid
para conexiones de cliente y servidor. Cualquier evento de registro y respuesta de error del cliente incluye la identificación, que luego se puede utilizar para identificar de forma única al cliente y realizar un seguimiento de las acciones. Odyssey puede guardar eventos de registro en un archivo de registro y utilizar el registrador del sistema.
Odyssey admite múltiples opciones de línea de comando. Utilice /path/to/odyssey
--help para ver más
Odyssey tiene una sofisticada arquitectura asíncrona de subprocesos múltiples impulsada por un motor de rutina personalizado: machinarium. La idea principal detrás del diseño de rutinas es hacer que las aplicaciones asincrónicas controladas por eventos se vean y se sientan como si estuvieran escritas de manera sincrónica en lugar de utilizar el enfoque tradicional de devolución de llamada.
Uno de los objetivos principales era hacer que el código base fuera comprensible para los nuevos desarrolladores y crear una arquitectura fácilmente extensible para desarrollos futuros.
Más información: Arquitectura e interiores.
Actualmente Odyssey se ejecuta sólo en Linux. Las plataformas compatibles son x86/x86_64.
Para construir necesitarás:
git clone git://github.com/yandex/odyssey.git
cd odyssey
make local_build
Adapte odyssey-dev.conf entonces:
make local_run
Alternativamente:
make console_run
make start-dev-env
Configure su CLion para construir un proyecto en un contenedor, manual.