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
สำหรับการเชื่อมต่อไคลเอ็นต์และเซิร์ฟเวอร์ เหตุการณ์บันทึกและการตอบกลับข้อผิดพลาดของไคลเอ็นต์จะมีรหัส ซึ่งสามารถใช้เพื่อระบุไคลเอ็นต์โดยเฉพาะและติดตามการดำเนินการได้ Odyssey สามารถบันทึกเหตุการณ์บันทึกลงในไฟล์บันทึกและใช้ตัวบันทึกระบบได้
Odyssey รองรับตัวเลือกบรรทัดคำสั่งหลายรายการ ใช้ /path/to/odyssey
--help เพื่อดูเพิ่มเติม
Odyssey มีสถาปัตยกรรมแบบอะซิงโครนัสแบบมัลติเธรดที่ซับซ้อน ซึ่งขับเคลื่อนโดยเครื่องยนต์ coroutine ที่สั่งทำพิเศษ: เครื่องจักร แนวคิดหลักเบื้องหลังการออกแบบ Coroutine คือการทำให้แอปพลิเคชันแบบอะซิงโครนัสที่ขับเคลื่อนด้วยเหตุการณ์มีรูปลักษณ์และความรู้สึกเหมือนถูกเขียนในลักษณะขั้นตอนแบบซิงโครนัส แทนที่จะใช้วิธีการโทรกลับแบบดั้งเดิม
เป้าหมายหลักประการหนึ่งคือการทำให้โค้ดเบสเป็นที่เข้าใจได้สำหรับนักพัฒนาใหม่ และเพื่อทำให้สถาปัตยกรรมสามารถขยายได้ง่ายสำหรับการพัฒนาในอนาคต
ข้อมูลเพิ่มเติม: สถาปัตยกรรมและภายใน
ปัจจุบัน 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 ของคุณเพื่อสร้างโปรเจ็กต์ในคอนเทนเนอร์ด้วยตนเอง