SORU
8 NİSAN 2011, Cuma


Ne kadar Düğüm hakkında farklı.js'olay kaynaklı? Can't ASP yaparız.'In HttpAsyncHandler Net?

Web programlama,çok tecrübeli değilim ve aslında henüz Node.js her şey kodlanmış, event-driven approach ilgili merak etmedim. İyi görünüyor.

Madde parçacığı tabanlı bir yaklaşım istekleri işlemek için kullanırsan başına gelebilecek bazı kötü şeyleri açıklıyor, ve olay odaklı bir yaklaşım yerine tercih edilmelidir. İş parçacığı tabanlı, kasiyer/iplik gıda/kaynağımız hazır olana kadar bizimle kaldı. Olay kaynaklı iken, kasiyer yemeklerimizi beklerken diğer isteklerini engellemek kalmayalım bir yere isteği dışında gönderme sırası. Bu engelleme parçacığı tabanlı bir ölçek için, iş parçacığı sayısını artırmak gerekir. Benim için bu iş parçacığı/threadpools düzgün kullanmamak için kötü bir bahane gibi görünüyor.

Bu İHttpAsyncHandler kullanarak, usulüne uygun olamaz mı? ASP.Net bir istek alır, Havuzu kullanan ve işleyicisi çalışır (BeginProcessRequest), sonra da içine bir geri arama ile dosya/veritabanı yüklenemedi. Bu konuyu daha sonra diğer istekleri işlemek için özgür olmalıdır. Dosya okuma yapıldıktan sonra, Havuzu eyleme tekrar aradı ve kalan yanıt yürütür. Benim için farklı değil yani, bu yüzden değil Uygulama Geliştirme ve bakım?

Biliyorum tabanlı iplik sakıncalarından biri de, iş parçacığı kullanarak daha fazla bellek ihtiyacı var. Ama sadece bu, birden çok çekirdeğin avantajlarından yararlanabilirsiniz. Node.js herhangi bir iş parçacığı/çekirdek hiç kullanmıyor şüpheliyim.

Yani, temel sadece olay güdümlü vs parçacığı tabanlı (yok) getir "çünkü Javascript ve her tarayıcı..." değişken), biri bana ne olduğunu, gerçek fayda kullanarak Node.js yerine mevcut teknoloji?

Uzun bir soru oldu. Teşekkür ederim :)

CEVAP
8 NİSAN 2011, Cuma


Öncelikle çok dişli değil. Bu çok önemli. Çok yetenekli bir programcı olmaktan çok dişli bir ortamda çalışan bir program tasarımı var. İş parçacıkları sadece çok zor.

Bir tanrı olmak için doğru tasarlanmış değil nerede dişli bir proje korumak zorundayız. Sadece çok büyük projelerde önlemek için zor olabilir o kadar çok sorun var ki.

İkinci olarak tüm platform uyumsuz olarak çalıştırmak üzere tasarlanmıştır. Her IO etkileşimi uyumsuz olduğu herhangi bir ASP.NET proje gördün mü? sadece ASP.NET koy olay tahrik olmak için tasarlanmıştır.

O zaman açık bağlantı başına iplik ve tüm Ölçekleme sorunu var aslında bellek baskı var. Eğer yanılıyorsam beni Düzelt ama ASP.NET her bağlantı için yeni bir iş parçacığı oluşturma önlemek için nasıl bilmiyorum.

Başka bir sorun node.js bir istek boşta kullanılmıyor veya IO bekliyor o zaman. C# thread uyur. Şimdi uyuyabilir bu konuları miktarı için bir sınır yoktur. Node.js kolayca bir gelişme makinede paralel olarak aynı anda 10k müşterileri idare edebilirsiniz. Bir gelişme makinede paralel 10k konuları işlemeyi deneyin.

Zaman uyumsuz bir dil daha kolay kodlama yapar gibi kendisi JavaScript. Eğer hala C# 2.0 asenkron sözdizimi sonra ise tam bir baş belası. Geliştiriciler çok basitçe her yerde Action<> Function<> tanımlama ve geri çağrıları kullanarak mutlu olacaktır. ASP.NET bir proje evented bir şekilde yazılmış sadece ortalama ASP.NET geliştirici tarafından sürdürülebilir değildir.

Konuları ve çekirdek gibi. Node.js birden çok düğüm süreçleri oluşturarak tek dişli ve pulları. Eğer 16 bir çekirdek varsa o zaman size node.js 16 örnekleri sunucusu çalıştırmak ve önünde tek node.js yük dengeleyici var. (Belki nginx bir yük Eğer isterseniz dengeleyici).

Bu çok düşük bir düzeyde baştan platformun içine yazılmıştır. Bu işlevi, satır aşağı daha sonra sabitlenmiş değildi.

Diğer avantajları

Node.js daha çok yukarıda. Yukarıda ASP.NET döngü daha sonra zaman uyumsuz yetenekleri ile yapıyor olay işleme düğüm-js tek neden.

  • performans. Hızlı. Gerçekten çok hızlı.
  • Node.js bir büyük avantajı düşük seviye API. Kontrol çok şey var.
  • Tüm HTTP Sunucusu doğrudan koda IIS için daha sonra dış kaynaklı entegre etmiş.
  • Tüm nginx vs apache karşılaştırma var.
  • Tüm C10K meydan iyi IIS tarafından düğümü olarak ele alınır
  • ajax ve json iletişimi doğal ve kolay geliyor.
  • gerçek zamanlı iletişim node.js en güzel yanlarından biridir. Onun için üretilmişti.
  • oynar belge ile güzelce nosql veritabanları dayalı.
  • TCP server i çalıştırın. Olabilir yazma erişimi dosya, herhangi bir unıx çalıştırabilirsiniz komut konsolu sunucuda.
  • Javascript örneğin kanepe db ve göster/azaltmak kullanarak veritabanı sorgu. JavaScript istemci yazmak. İçerik değiş-tokuş ederken, web üzerinde bir yığın gelişme yok.
  • toplum zengin kaynağı modülleri tahrik açın. Node.js her şey açık kaynak
  • ve neredeyse hiç küçük ayak izi dependecies. Node.js kaynağı kendiniz oluşturun.

node.js dezavantajları

Zor. Genç. GibiyetenekliZorluk node.js bir web sitesi yazma, sadece düşük seviyede çünkü ben JavaScript geliştirici ve kontrol seviyesini doğa. Esneklik ve güç Bir şey benim için de kullanılabiliyor ya da beni asmak C. gibi.

API dondurulmuş değil. Hızla değişiyor. Büyük bir web sitesi tamamen yeniden yazmak zorunda node.js o zaman değişmiş olacak miktarı nedeniyle 5 yıl içinde hayal edebiliyorum. Do-yapabiliyor, node.js web sitelerinde bakımı ucuz değil farkında olmak zorunda.

daha fazla okuma

http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/

http://blip.tv/file/2899135

http://nodeguide.com/

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ChasesAndCrashes

    ChasesAndCra

    31 Temmuz 2009
  • eisleyhead

    eisleyhead

    11 Ocak 2006
  • MrDevin521

    MrDevin521

    18 Temmuz 2010