Odyssey 可以通过指定多个额外的工作线程来显着提高处理性能。每个工作线程负责身份验证和代理客户端到服务器以及服务器到客户端的请求。所有工作线程都共享全局服务器连接池。多线程设计在SSL/TLS
性能中发挥着重要作用。
Odyssey 跟踪当前事务状态,如果客户端意外断开连接,可以发出自动Cancel
连接并Rollback
废弃的事务,然后将服务器连接放回服务器池以供重用。此外,会记住最后一个服务器连接所有者客户端,以减少在每个客户端到服务器分配上设置客户端选项的需要。
Odyssey 允许将连接池定义为一对Database
和User
。每个定义的池可以有单独的身份验证、池模式和限制设置。
Odyssey 具有全功能的SSL/TLS
支持和常见的身份验证方法,例如:用于客户端和服务器身份验证的md5
和clear text
。 Odyssey 支持 PAM 和 LDAP 身份验证,此方法的操作与clear text
身份验证类似,不同之处在于它使用 PAM/LDAP 来验证用户名/密码对。 PAM 可以选择检查连接的远程主机名或 IP 地址。此外,它还允许单独阻止每个池用户。
Odyssey 为客户端和服务器连接生成通用唯一标识符uuid
。任何日志事件和客户端错误响应都包含 ID,然后可使用 ID 来唯一标识客户端并跟踪操作。 Odyssey 可以将日志事件保存到日志文件中并使用系统记录器。
Odyssey 支持多个命令行选项。使用/path/to/odyssey
--help 查看更多信息
Odyssey 拥有复杂的异步多线程架构,由定制的协程引擎:machinarium 驱动。协程设计背后的主要思想是使事件驱动的异步应用程序看起来像是以同步过程方式编写的,而不是使用传统的回调方法。
主要目标之一是让新开发人员可以理解代码库,并使架构可以轻松扩展以适应未来的开发。
更多信息:架构和内部结构。
目前 Odyssey 仅在 Linux 上运行。支持的平台为 x86/x86_64。
要构建您将需要:
git clone git://github.com/yandex/odyssey.git
cd odyssey
make local_build
然后修改 odyssey-dev.conf:
make local_run
或者:
make console_run
make start-dev-env
设置 CLion 以在容器中手动构建项目。