Middle+
Graceful shutdown nedir ve nerelerde kullanılır, anlatabilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Graceful shutdown, yani nazikçe kapanma, uygulamanın düzgün bir şekilde sonlandırılması sürecidir. Bu süreç, uygulamanın mevcut işlemleri tamamlamasına, kaynakları serbest bırakmasına ve durumu kaydetmesine olanak tanır.
Graceful shutdown uygulamaları:
- Yeni uygulama sürümlerinin dağıtımı: Eski sürüm, veri kaybı veya kullanıcı oturumlarının kesintisi olmadan yeni sürüme sorunsuz bir şekilde geçiş yapar.
- Planlı yeniden başlatmalar veya teknik bakım: Tüm açık bağlantıların kapatıldığından ve görevlerin tamamlandığından emin olur.
- Arıza veya ölçeklendirme tepkisi: Yük azaltıldığında veya sorunlar ortaya çıktığında, servisler düzgün bir şekilde durdurulabilir.
Node.js'te uygulama örneği:
// 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 süren işlemin simülasyonu
});
server.listen(3000, () => {
console.log('Port 3000 üzerinde dinleniyor');
});
// SIGTERM sinyali için graceful shutdown işlemi
process.on('SIGTERM', () => {
console.log('SIGTERM sinyali alındı. Sunucu kapatılıyor...');
server.close(() => {
console.log('Sunucu kapandı. İşlem sonlandırılıyor.');
process.exit(0);
});
// Kapatma gecikirse zorla kapatma
setTimeout(() => {
console.error('Zorla kapatma...');
process.exit(1);
}, 5000); // 5 saniye
});
Örnekte, SIGTERM sinyali alındığında, sunucu yeni bağlantıları kabul etmeyi durdurur, ancak mevcut bağlantıların tamamlanmasına izin verir. Belirlenen süre sonunda, kapanma gecikirse zorla kapatılır.