Middle+
Graceful shutdown nədir və harada tətbiq olunur, izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Nəzakətli bağlanma (graceful shutdown) — bu, tətbiqin düzgün şəkildə bağlanması prosesidir, bu da ona davam edən əməliyyatları tamamlamasına, resursları sərbəst buraxmasına və vəziyyəti yadda saxlamasına imkan verir.
Nəzakətli bağlanmanın tətbiqləri:
- Yeni versiyaların tətbiqi: Köhnə versiyanı yeni ilə problemsiz dəyişdirməyə imkan verir, məlumat itkisi və ya istifadəçi sessiyalarının pozulması olmadan.
- Planlı yenidən başlatmalar və texniki baxım: Bütün açıq əlaqələrin bağlanmasını və tapşırıqların tamamlanmasını təmin edir.
- Xətalar və miqyaslandırma zamanı: Yük azaldıqda və ya problemlər yarandıqda, xidmətlər düzgün şəkildə dayandırıla bilər.
Node.js-də nümunə:
// process.js
const http = require('http');
const server = http.createServer((req, res) => {
setTimeout(() => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, World!\n');
}, 2000); // Uzun əməliyyatın simulyasiyası
});
server.listen(3000, () => {
console.log('Server port 3000-də dinləyir');
});
// SIGTERM siqnalı üçün nəzakətli bağlanma
process.on('SIGTERM', () => {
console.log('SIGTERM siqnalı alındı. Server bağlanır...');
server.close(() => {
console.log('Server bağlandı. Prosesi bitirir...');
process.exit(0);
});
// Bağlanma gecikərsə, zorla bağlama
setTimeout(() => {
console.error('Zorla bağlanır...');
process.exit(1);
}, 5000); // 5 saniyə
});
Nümunədə, SIGTERM siqnalı alındıqda, server yeni əlaqələri qəbul etməyi dayandırır, lakin mövcud əlaqələrin tamamlanmasına imkan verir. Təyin olunmuş vaxtdan sonra, bağlanma çox gecikərsə, zorla bağlanma həyata keçirilir.