13 Kasım 2013 Çarşamba

Failover-Proxy ile NodeJS High Availability




Daha önce forever ile nodejs uygulamamızın bir servis olarak çalıştırılmasından ve herhangi bir sorun oluştuğunda kendisini yeniden başlatabilmesinden söz etmiştik.Peki sunucu kaynaklı erişim sorunlarında ne yapacağız.

Günümüz web dünyasında bir uygulamanın erişim problemi yaşaması ciddi kullanıcı kayıplarına geri dönüşü olmayan hasarlara sebep olabilir. Bu tarz durumları önlemek adına birden fazla sunucu üzerinde uygulamamızı çalıştırıp failover-proxy ile bu sunucular üzerinde redirect yapılmasını sağlayabiliriz. Kullanımı son derece basit olan forever-proxy'i

 npm install failover-proxy

komutuyla kurduktan sonra aşağıda yer alan bir kaç satırlık kod ile sunucular arasında geçiş yapılmasını sağlayabilir, sunucular arasında geçiş yapılması durumunda yapılacak işlemleri ve loglamayı 'cycle' event'ı içerisinde yönetebilirsiniz.

Failover-proxy'i test etmek için localhost'da farklı portlarda çalışan aynı uygulamaları ayağa kaldıralım.

host1-port:7777

Yükleniyor...


host2-port:8888

Yükleniyor...

Bu iki uygulamayıda ayağa kaldırdıktan sonra proxy için host ayarlarını girip onu da çalışır hale getirelim.

proxy-port:9999

Yükleniyor...


localhost:9999 adresine istemde bulunduğumuzda uygulamamızdan dönen 'Hello World' cevabını göreceğiz.
Şimdi proxy'nin başlangıçta bağlandığı sunucuyu (bizde nodejs instance'ı ) kapatalım ve tekrar localhost:9999 adresine istemde bulunalım.
 'Hello World' cevabının görüntülendğini ve proxy'i çalıştırdığımız console'da sunucu değişikliklerinde yazmasını beklediğimiz 'cycle: 8888 -> 7777' çıktısını göreceğiz. Bu proxy'nin 8888 portu üzerinde çalışan uygulamadan cevap alamayıp 7777 üzerinde çalışan uygulamaya redirect ettiğini göstermektedir.

 'cycle' event'ı içerisinde istediğimiz bildirimleri gönderebilir bu sayede sunucularımızdan birinin cevap vermemesi durumundan anlık haberdar olarak gerekli önlemleri alabiliriz.

Failover-Proxy

Hiç yorum yok:

Yorum Gönder