محرك خدمات Node.js صغير سريع لتشغيل الوظائف السحابية بزمن وصول منخفض. تم تضمين لوحة تحكم المشرف.
استكشاف المستندات »
الإبلاغ عن الأخطاء · ميزة الطلب
محرك Boltz هو محرك خدمات Node.js صغير سريع ومجمع، يبدأ الحالات من بداية باردة خلال 100 مللي ثانية، والتفاعلات اللاحقة مع الوظائف تقل عن 10 مللي ثانية في الظروف العادية. تُستخدم مثيلات V8 VM لفصل السياقات وتسمح لك بتصميم التعليمات البرمجية الخاصة بك كخدمات صغيرة مستضافة ذاتيًا وقابلة للتشغيل المتبادل مع الخدمات المستندة إلى السحابة. تعدد مؤشرات الترابط يعني أن مثيلاتك يتم قياسها عبر المجموعة بأكملها عبر جميع مراكز وحدة المعالجة المركزية الخاصة بك. تسمح لك واجهة برمجة التطبيقات الإدارية بإدارة Boltz من واجهة الإدارة المضمنة.
قم بالتنزيل من صفحة الإصدارات ثم قم بتشغيل ملف start.sh أو start.bat لتثبيت Boltz وتشغيله.
أو اسحب من bsnk/boltz-engine
على Docker Hub وقم بإعداد الخطوات التالية:
قم بإنشاء config.json وsecrets.json - يمكنك تنزيلهما من الإصدار الموجود على صفحة الإصدارات
وضعها في مجلد، وهنا سيكون boltz-data
قم بتشغيل صورة عامل الإرساء باستخدام
$ docker run --publish 5000:5000 --publish 8000:8000 -v /boltz-data:/boltz -v /boltz-data:/secrets/ -v /boltz-data:/database -v /boltz-data/sandbox:/sandbox/ bsnk/boltz-engine:latest
يمكنك تغيير هذه المجلدات لتناسب رغبتك وتخصيص المنافذ التي تستخدمها في config.json وفي أمر البدء. ربما ينبغي عليك أيضًا استخدام إصدار بولتز مثل 1.1.0
بدلاً من الإصدار الأحدث للتأكد من عدم ظهور الأخطاء في الإنتاج. /boltz هو المكان الذي سيبحث فيه عن ملف config.json داخل الحاوية، ويمكن تخصيص الباقي وفقًا للوثائق.
يتيح لك Boltz إنشاء مثيلات VM لتلقي طلبات الويب ومعالجتها، ووحدات التخزين لتخزين التعليمات البرمجية والتكوينات، وتتيح لك حفظ البيانات على قرص افتراضي مؤقتًا. يتم مسح كافة التغييرات عندما يلزم إعادة تحميل المثيل أو وحدة التخزين.
يتم تحميل الحزم من package.json وتثبيتها في مجلدات معزولة على نظام الملفات المضيف، وتتم مشاركتها مع أي مثيلات تستخدم نفس المجلد في نفس العملية.
الاستخدام الموصى به لمحرك Boltz مخصص لمشاريع الخدمات الصغيرة البسيطة التي يمكن توسيع نطاقها لاحقًا باستخدام منتج سحابي مناسب. يحتوي على منحنى تعليمي وحمل منخفض، مما يسمح لك بالتركيز على وظائف مشروعك وعدم إعداده للتشغيل على منصة سحابية عندما يكون خفيفًا بما يكفي للتعامل معه محليًا. كما أنه سريع للغاية، حيث يقدم نتائج على جهازك المحلي في أقل من 10 مللي ثانية، بدلاً من آلاف المللي ثانية في الوظائف السحابية العادية. بالإضافة إلى أنه سهل الاستخدام مع واجهة الإدارة المضمنة.
يعاني محرك بولتز من بعض المشاكل، منها:
حجم تثبيت الحزمة كبير بسبب تنفيذ صناديق الحماية لوحدات العقدة ذات الحجم الفردي.
تستخدم واجهة برمجة تطبيقات المشرف المصادقة الأساسية، مما يعني أنه يتعين عليك إعادة تشغيل الخادم لتغيير كلمة المرور.
باستخدام مثيل GCP Cloud Shell، تم تكليف وظيفة بتكرار معلمة استعلام name
بعلامة تعجب، وتم تنفيذها على النحو التالي:
استخدام عملية عاملة واحدة: 4500-5000
طلب في الثانية بزمن وصول قدره 50ms
.
استخدام أربع عمليات عاملة: 5500-6000
طلب في الثانية بزمن وصول يتراوح بين 4-8ms
.
باستخدام نفس الوظيفة مع عامل واحد، يمكننا تحقيق 1000
اتصال متزامن وإجراء 200,000
طلب بزمن وصول يبلغ حوالي 100ms
و 5600rps
.
يقبل Boltz طلبات السحب لتحسين المحرك أو واجهة الويب، الموجودة في مستودع الويب هنا. فهو يستخدم الكتابة المطبوعة مع مجموعة قواعد Google eslint، لذا حاول أن تظل متسقًا وحافظ على أدائه.
عندما تكون مستعدًا لتوزيع تغييراتك، تحتاج إلى التأكد من وجود ملفات الويب ضمن الدليل public
، وإلا فما عليك سوى تشغيل واجهة الويب في وضع التطوير جنبًا إلى جنب مع المحرك.
حقوق الطبع والنشر 2021 bsnk-dev
يُمنح الإذن مجانًا لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة به ("البرنامج")، للتعامل في البرنامج دون قيود، بما في ذلك، على سبيل المثال لا الحصر، حقوق الاستخدام والنسخ والتعديل والدمج. ونشر و/أو توزيع وترخيص من الباطن و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين تم توفير البرنامج لهم بالقيام بذلك، وفقًا للشروط التالية:
يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الكبيرة من البرنامج.
يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريحًا أو ضمنيًا، بما في ذلك، على سبيل المثال لا الحصر، ضمانات القابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك. لا يتحمل المؤلفون أو أصحاب حقوق الطبع والنشر بأي حال من الأحوال المسؤولية عن أي مطالبة أو أضرار أو مسؤولية أخرى، سواء في إجراء العقد أو الضرر أو غير ذلك، الناشئة عن أو خارج أو فيما يتعلق بالبرنامج أو الاستخدام أو المعاملات الأخرى في برمجة.