الأداء و Keep-Alive والإيقاف اللطيف
الأداء و Keep-Alive والإيقاف اللطيف
الأداء ليس سرعة الإطار فقط. يشمل إعادة استخدام الاتصالات، وحجم الحمولة، واختيار المحول، وسلوك الإيقاف، وتنظيف الموارد، وكيف يستجيب التطبيق عندما تطلب Kubernetes أو systemd إيقافه.
الفكرة الأساسية
تدور هذه الميزة حول التحكم في كيفية تنظيم التطبيق وسلوكه وقت التشغيل. النقاط التالية هي ما يجب أن يعرفه المطور قبل استخدامها في مشروع حقيقي:
- تقلل اتصالات keep-alive تكلفة مصافحات TCP/TLS للاتصالات المتكررة.
- يسمح الإيقاف اللطيف لـ Nest بتشغيل خطافات دورة الحياة وإغلاق عملاء قاعدة البيانات وRedis والوسيط.
- تربط enableShutdownHooks() إشارات العملية بأحداث دورة حياة Nest.
- قد يحسن Fastify الإنتاجية، لكن تصميم الحمولة والتخزين المؤقت وزمن الخدمات التابعة غالباً أهم في الأداء الحقيقي.
- ينبغي غالباً تنفيذ الضغط والتخزين المؤقت قرب الحافة للحركة العامة.
مثال عملي
يوضح المثال التالي الشكل العملي للفكرة داخل مشروع NestJS. ليست الغاية حفظ الكود، بل فهم مكانه في المعمارية:
قائمة تطبيق إنتاجية
- فعّل خطافات الإيقاف في الخدمات المنشورة.
- أغلق عملاء قاعدة البيانات وRedis وHTTP والوسيط في خطافات الإتلاف.
- استخدم keep-alive agents لاتصالات HTTP الخارجية عالية الحجم.
- قس p95/p99 قبل تحسين محول الإطار.
الخلاصة
يغطي هذا الدرس جزءاً متقدماً من NestJS يجب فهمه عند بناء تطبيقات مؤسسية. ركّز على الحدود الواضحة، والسلوك القابل للاختبار، واختيار الأداة المناسبة للسياق بدلاً من استخدام كل ميزة في كل مكان.