Node.js nedir?

node.js, server-side javascript yazmamıza imkan tanıyan, google'ın süperdüper hızlı V8 engine'ini kullanan bir yazılım mimarisi.

Nodejs joyent firmasının bir markasıdır ve 2009 yılında geliştirilmeye başlanmıştır. Nodejs ölçeklenebilir, olay güdümlü (event-driven) asenkron, non-blocking I/O çalışma modelini kullanır. Bu da yüksek performans ile çalışmasını sağlar. Linkedin mobil sunucu tarafında nodejs ye geçtikten sonra sunucu sayısını 30 dan 3 e düşürdüğünü ve bazı işlemlerde 20 kata kadar daha hızlı olduğunu açıklamıştır

Nodejs yi cazip yapan diğer bir konu ise IIS, jboss gibi yüksek kaynak tüketen web server kullanmak gerekmiyor. Nodejs de uygulama sunucusunu basit bir şekilde kendimiz yazıyoruz.

Herbir nodejs uygulaması bir thread kullanır. Fakat event loop / non-blocking IO modelini kullandığı için performans olarak çok iyidir. Event loop/non blocking IO şu mantıkla çalışır. Client istekte bulunur ve event loop bu isteği non-block şekilde çalışan işleyicilere yönlendirir ve client e bir bilet verir. İşleyiciler işini bitirince cevabı event loop a bildirir ve event loop cevabı alıp içindeki bileti çıkarıp client e gönderir.

Nodejs yi bilgisayarımıza kurmak oldukça basittir. http://nodejs.org/download/ adresinden kurulum paketini indirebilirsiniz. Nodejs ile birlikte npm (node package manager) da kurulmuş olacaktır. Bu nodejs de yazılmış kütüphaneleri kurulumunu sağlar.

Nodejs Nasıl Çalışır?

Nodejs çalışma mantığı {kullanıcı -> Request(İstek) -> İşlem(Html,Database) -> Callback(Geri dönen sonuç) } mantığı ile çalışır. Yani kullanıcı sitenizde örnek beğeni butonu diyelim butona tıkladığında istek request başlıyor -> işlem yapılıyor -> işlemden sonra callback dönüyor. Aslında bu sistem genel bütün yazılım çalışma mantığı adına da thread based sistem denir. Ama nodejs'de ki farkı aynı anda birçok kişi istek yapabilir hatta farklı istekler yapabilir. Thread based sistem de her istek sıraya konur ve senkron programlama olarak biri bitmeden diğeri çalışmaz. Nodejs de ise Event Based yani her istek bağımsız bloklanır(Non Bloking) biri bitmeden asenkron programlama olarak diğeri de çalışabilir. 

Event Driven & Non Blocking Nedir?

Yazılım çalışma mantığında istekler ve sonuclar arasında bir döngü vardır. İstekler normal yazılım dillerinde thread basic sistemine göre blocklanır yani listelenir ve biten işlem bir diğerine geçer ama nodejs ile event diriven sistemi sayesinde her istek kendi yoğrulur liste bloklama olmaz (non blocking) daha hızlı veri akışı sağlanır.

Nodejs her istek kendi içerisinde asenkron programlama non bloking Event based olarak çalışır. Aynı anda 2 istek geldiğinde sıraya koymaz ikisinide işleme alır hangisi daha önce biterse onu geri döner bekleme yapmaz. 

Diğer yazılım dillerinde örnek php thread basic sistemde istekler sıraya konarak senkron programlama olarak çalışır. Listelenmiş istekler sıraya konur ve biri bitmeden diğerine geçmez.

Nodejs Kullanımı

merhaba.js adında bir dosya oluşturlarım ve içine console.log('Merhaba NodeJs') yazdıktan sonra terminal üzerinden dosya yolumuzu belirterek node merhaba.js dediğimizde ekrana Merhaba Nodejs yazdığını göreceksiniz. Tabiki bilgisayarınızda nodejs kurulu olması gerekiyor.

Bir sonraki node.js makalesinde kurulumundan bahsedeceğiz. ve bu nodejs ile neler yapabileceğimizi birlikte uygulayarak görmüş olacağız. NodeJs Nasıl kurulur.

Görüş Hata Bildir

Güvenlik Kodunuz:

Yorum Yap

Yorum kodunuz:

0.0548