O Odyssey pode dimensionar significativamente o desempenho do processamento especificando vários threads de trabalho adicionais. Cada thread de trabalho é responsável pela autenticação e proxy de solicitações de cliente para servidor e de servidor para cliente. Todos os threads de trabalho estão compartilhando pools de conexões de servidores globais. O design multithread desempenha um papel importante no desempenho SSL/TLS
.
Odyssey rastreia o estado atual da transação e, em caso de desconexão inesperada do cliente, pode emitir Cancel
automático de conexão e Rollback
a transação abandonada, antes de colocar a conexão do servidor de volta no pool de servidores para reutilização. Além disso, o último cliente proprietário da conexão do servidor é lembrado para reduzir a necessidade de configuração de opções de cliente em cada atribuição de cliente para servidor.
Odyssey permite definir pools de conexões como um par de Database
e User
. Cada pool definido pode ter configurações separadas de autenticação, modo de pooling e limites.
Odyssey tem suporte SSL/TLS
completo e métodos de autenticação comuns como: md5
e clear text
para autenticação de cliente e servidor. Odyssey suporta autenticação PAM e LDAP, este método opera de forma semelhante à autenticação clear text
, exceto que usa PAM/LDAP para validar pares de nome de usuário/senha. O PAM verifica opcionalmente o nome do host remoto conectado ou endereço IP. Além disso, permite bloquear cada usuário do pool separadamente.
Odyssey gera identificadores uuid
universalmente exclusivos para conexões de cliente e servidor. Quaisquer eventos de log e respostas de erro do cliente incluem o ID, que pode ser usado para identificar exclusivamente o cliente e rastrear ações. Odyssey pode salvar eventos de log em um arquivo de log e usar o registrador do sistema.
Odyssey oferece suporte a várias opções de linha de comando. Use /path/to/odyssey
--help para ver mais
Odyssey possui uma arquitetura multithread assíncrona sofisticada que é impulsionada por um mecanismo de rotina personalizado: machinarium. A ideia principal por trás do design de corrotinas é fazer com que os aplicativos assíncronos orientados a eventos pareçam ter sido escritos de maneira processual síncrona, em vez de usar a abordagem tradicional de retorno de chamada.
Um dos principais objetivos era tornar a base de código compreensível para novos desenvolvedores e tornar uma arquitetura facilmente extensível para desenvolvimento futuro.
Mais informações: Arquitetura e interiores.
Atualmente o Odyssey roda apenas em Linux. As plataformas suportadas são x86/x86_64.
Para construir você precisará de:
git clone git://github.com/yandex/odyssey.git
cd odyssey
make local_build
Adapte odyssey-dev.conf então:
make local_run
Alternativamente:
make console_run
make start-dev-env
Configure seu CLion para construir projeto em container, manual.