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 以在容器中手動建置專案。