ทำความรู้จัก Velociradix เฟรมเวิร์ก Node.js ขับเคลื่อนด้วย C++17 ประสิทธิภาพ 180,000 req/s
นวัตกรรมเว็บเฟรมเวิร์กใหม่ล่าสุดสำหรับ Node.js ที่ย้ายระบบจัดการซ็อกเก็ตและแยกการประมวลผลไปที่ C++17 พื้นหลังแบบมัลติทรด

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- Velociradix คือ C++17 HTTP engine และเว็บเฟรมเวิร์กความเร็วสูงสำหรับ Node.js
- ออกแบบมาให้ไม่มีดีพเพนเดนซีภายนอก (zero-dependency) และประมวลผลรวดเร็ว
- ย้ายการจัดการซ็อกเก็ตและการพาร์ส HTTP ไปยัง C++ เพื่อลดภาระ V8 loop
- รองรับการกำหนดเส้นทางด้วย Radix Trie routing บนเนทีฟมัลติทรด
นักพัฒนาซอฟต์แวร์ได้เปิดตัวโปรเจกต์ใหม่ในชื่อ Velociradix ซึ่งถูกพัฒนาขึ้นมาให้เป็นเอ็นจิ้น HTTP และเว็บเฟรมเวิร์กสำหรับ Node.js ที่เน้นเรื่องความเร็วสูงเป็นหลัก โดยทำงานแบบไม่มีดีพเพนเดนซีและเขียนด้วยภาษา C++17 เพื่อยกระดับประสิทธิภาพในการจัดการคำขอเว็บให้สูงยิ่งขึ้น
โครงสร้างสถาปัตยกรรมทั่วไปของเฟรมเวิร์ก Node.js ดั้งเดิมมักจะทำการประมวลผลการวิเคราะห์ HTTP การตรวจสอบเฮดเดอร์ และการกำหนดเส้นทางทั้งหมดบนเธรดเดี่ยวของ V8 loop แต่สำหรับ Velociradix ได้เลือกแนวทางที่แตกต่างออกไปโดยสิ้นเชิง

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
การนำภาษา C++17 เข้ามาผสานการทำงานกับ Node.js ถือเป็นแนวทางที่น่าสนใจในการทะลุกำแพงข้อจำกัดเรื่อง Single-threaded ของ V8 engine การใช้เทคนิคแบบ native multi-threaded background workers ช่วยให้การจัดการงานหนักอย่าง I/O หรือการวิเคราะห์ข้อมูลแพ็กเก็ตเน็ตเวิร์กไม่ไปแย่งทรัพยากรหลัก ส่งผลให้เสถียรภาพและความเร็วของระบบโดยรวมเพิ่มสูงขึ้นอย่างเห็นได้ชัดเมื่อเทียบกับเฟรมเวิร์กทั่วไป
จุดเด่นสำคัญของสถาปัตยกรรมระบบนี้ประกอบด้วยการทำงานส่วนต่างๆ ดังนี้:
- จัดการการรับส่งข้อมูลซ็อกเก็ตผ่านระบบ kqueue หรือ epoll
- ประมวลผลการวิเคราะห์ HTTP แบบ zero-copy
- ใช้งาน Radix Trie routing บนเธรดเบื้องหลังที่เป็น C++ แบบมัลติทรดแท้จริง
สำหรับผู้ที่สนใจศึกษาเพิ่มเติมหรือต้องการร่วมทดสอบใช้งาน สามารถเข้าไปดูคู่มือและเอกสารประกอบได้ที่เว็บไซต์ทางการ รวมถึงเข้าถึงซอร์สโค้ดทั้งหมดผ่านทาง GitHub Repository เพื่อร่วมแสดงความคิดเห็นและแลกเปลี่ยนมุมมองด้านสถาปัตยกรรมระบบได้โดยตรง
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น