Node.js Atau servlets? [Tutup]

10

Saya telah mendengar banyak dan membaca tentang bahasa sisi server Javascript yaitu Node.js, dan melihat banyak perbandingan yang mendukung Node.

Saya tidak mengerti apa yang membuatnya lebih baik atau lebih cepat, atau bagaimana hubungannya dengan sesuatu yang semuda Java Servlets.

Tetapi Servlets dibangun di atas bahasa pemrograman multithreaded sebagai lawan Node.js. Lalu bagaimana simpul.js bisa lebih cepat?

Jika seandainya 1000K pengguna meminta catatan database, maka seharusnya Node.js tidak lebih lambat dari Servlets.

Juga bukankah servlets memiliki keamanan yang lebih baik dibandingkan dengan Node.js?

log N
sumber
Baik proses dan utas dapat digunakan untuk skala aplikasi apa pun untuk pemanfaatan multi-core. Anda tidak perlu keduanya.
Raynos
@ Raynos Tidak bisakah fungsi C terikat juga diulir? Saya baru saja mengambil peran JS sebagai pembawa antrian antrian yang tidak menghalangi untuk menyerahkan barang-barang ke level yang lebih rendah, tetapi saya masih belum mengerti Node.
Erik Reppen

Jawaban:

12

Anda sedang mencampur apel dan jeruk.

Servlet (atau warisan dari HttpServlet) memungkinkan Anda mengakses parameter permintaan HTTP dan merespons dengan sesuatu, melalui (atau di atas) implementasi server HTTP yang ada.

Meskipun menggunakan Javascript sebagai bahasa, Node.js berada pada level yang lebih rendah dari itu. Dimulai dari benar-benar mengimplementasikan server HTTP. Anda dapat terus melakukan lebih banyak hal tingkat tinggi di dalamnya, seperti aplikasi web.

Tentang multi-threading, itu tidak perlu. Server Node.js tidak lebih cepat karena multi-threading, mereka lebih cepat karena mereka tidak memblokir permintaan IO, sehingga mereka dapat terus memompanya dalam antrian, sambil melakukan hal-hal lain. Mereka hanya bekerja ketika ada pekerjaan yang harus dilakukan - mereka tidak menunggu - dan itu menyebabkan peningkatan kinerja yang serius, ternyata.

Adapun permintaan basis data, ini lebih banyak tentang kendala dalam model database dan API daripada tentang klien.

Adapun keamanan - itu benar-benar topik yang berbeda, dan pada akhirnya berada di tangan pengembang mana pun, tidak begitu banyak di perpustakaan.

Yam Marcovic
sumber
3
Servlet 3 mendukung Iyn asynch seperti Node
jiggy
3
jiggy - Ada perbedaan besar antara mendukung sesuatu dan dirancang dari bawah ke atas untuk sesuatu. Node asynchrony adalah yang terakhir.
Jack
1
@Yam Marcovic Saya masih tidak mengerti apa yang Anda maksud dengan "mereka tidak memblokir permintaan IO" Bahkan di JEE sebuah utas akan berjalan secara independen yang tidak akan menghentikan permintaan lain untuk dilayani. Sebagai utas baru dibuat per permintaan. Apakah saya masuk akal?
Oliver