Node.js veya sunucu uygulamaları mı? [kapalı]


10

Çok şey duydum ve Javascript sunucu tarafı dili yani Node.js hakkında okudum ve Node lehine birçok karşılaştırma gördüm.

Neyi daha iyi veya daha hızlı yapan veya Java Servlet kadar olgun bir şeyle nasıl ilişkili olduğunu anlamıyorum.

Ancak Servlets, Node.js'nin aksine çok iş parçacıklı bir programlama dilinin üzerine inşa edilmiştir. Peki node.js nasıl daha hızlı olabilir?

1000K kullanıcılarının bir veritabanı kaydı için sorgulama yaptığını varsayalım, Node.js'nin Servlet'ten daha yavaş olmaması gerekir.

Ayrıca sunucu uygulamaları Node.js ile karşılaştırıldığında daha iyi güvenliğe sahip değil mi?


İşlemler ve iş parçacıkları, çok çekirdekli kullanım için herhangi bir uygulamayı ölçeklendirmek için kullanılabilir. İkisine de ihtiyacınız yok.
Raynos

@Raynos Ciltli C işlevselliği de işlenemez mi? JS'nin rolünü daha düşük seviyeli şeylere teslim etmek için engellemeyen otomatik kuyruklu haberci olarak rol aldım, ancak hala Düğümdeki pençelerimi henüz almadım.
Erik Reppen

Yanıtlar:


12

Elmaları ve portakalları karıştırıyorsunuz.

Sunucu uygulamaları (veya HttpServlet'ten devralma), HTTP istek parametrelerine erişmenize ve mevcut bir HTTP sunucusu uygulaması aracılığıyla (veya üstünde) bir şeye yanıt vermenize olanak tanır.

Javascript'i dil olarak kullanmasına rağmen, Node.js bundan daha düşük bir seviyededir. Aslında HTTP sunucusunu uygulamakla başlar . Bununla birlikte, web uygulamaları gibi daha üst düzey şeyler yapmaya devam edebilirsiniz.

Çoklu iş parçacığı hakkında, gerekli değildir. Node.js sunucuları çoklu iş parçacığı nedeniyle daha hızlı değildir, IO isteklerini engellemedikleri için daha hızlıdırlar, böylece başka şeyler yaparken kuyrukta pompalamaya devam edebilirler. Sadece yapılacak iş olduğunda çalışırlar - bunu beklemezler - ve bu ortaya çıktığı gibi ciddi bir performans artışına neden olur.

Veritabanı sorgularına gelince, veritabanı modeli ve API'daki kısıtlamalar istemciden çok daha fazladır.

Güvenlik gelince - bu gerçekten farklı bir konudur ve nihayetinde herhangi bir geliştiricinin elinde, kütüphanede çok fazla değil.


3
Servlet 3, Node gibi asenkron IO'yu destekler
jiggy

3
jiggy - Bir şeyi desteklemek ve sıfırdan bir şey için tasarlanmış olmak arasında büyük bir fark vardır . Düğüm eşzamansızlığı ikincisidir.
Jack

1
@Yam Marcovic Hala "IO isteklerini engellemiyorlar" ile ne demek istediğinizi anlamıyorum. JEE'de bile bir iş parçacığı, başka bir isteğin sunulmasını durduramayacak şekilde bağımsız olarak çalışır. İstek başına yeni bir iş parçacığı oluşturulur. Mantıklı mıyım?
Oliver
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.