Node.jsまたはサーブレット?[閉まっている]


10

私はJavascriptサーバー側言語、つまりNode.jsについて多くのことを聞いて読んだり、Nodeを支持する多くの比較を見たりしました。

何がそれを良くしたり速くしたりするのか、あるいはそれがJavaサーブレットのように成熟したものとどのように関係しているのかも理解できません。

ただし、サーブレットは、Node.jsとは対照的に、マルチスレッドのプログラミング言語の上に構築されています。では、node.jsをどのように高速化できますか?

1000Kのユーザーがデータベースレコードをクエリすると仮定すると、Node.jsがサーブレットよりも遅くなることはありません。

また、サーブレットはNode.jsに比べてセキュリティが優れていませんか?


プロセスとスレッドの両方を使用して、マルチコア使用率のアプリケーションを拡張できます。両方は必要ありません。
レイノス

@RaynosバインドされたC機能もスレッド化できませんか?私はJSの役割をノンブロッキングの自動キューメッセンジャーとして扱い、下位レベルのものに引き渡しましたが、まだNodeに足を乗せていません。
エリック・レッペン、2012年

回答:


12

りんごとオレンジを混ぜてるんですよね。

サーブレット(またはHttpServletから継承)を使用すると、HTTP要求パラメーターにアクセスして、既存のHTTPサーバー実装を介して(またはその上に)何かで応答できます。

言語としてJavaScriptを使用していますが、Node.jsはそれよりも低いレベルです。それは実際にHTTPサーバーを実装することから始まります。それでも、Webアプリケーションなど、より高度な処理を行うことができます。

マルチスレッドについては、必要ありません。Node.jsサーバーは、マルチスレッドのために高速ではありません。IO要求をブロックしないため高速であり、他のことをしながらキューでそれらをポンプアップし続けることができます。それらは、やらなければならない仕事があるときにのみ機能します-彼らはそれを待つことはありません-そしてそれが判明したように、それは深刻なパフォーマンスの向上を引き起こします。

データベースクエリについては、クライアントよりもデータベースモデルとAPIの制約が重要です。

セキュリティに関しては、それは実際には別のトピックであり、最終的にはとにかく開発者の手に渡っており、ライブラリではそれほど多くありません。


3
サーブレットだけノードのようなIO非同期3つのサポート
ジギー

3
jiggy- 何かをサポートすることと、何かのためにゼロから設計されることには大きな違いがあります。ノード非同期は後者です。
Jack

1
@Yam Marcovic 「IOリクエストをブロックしない」という意味がまだわかりません。JEE でも、スレッドは独立して実行されるため、別のリクエストの処理が停止されることはありません。リクエストごとに新しいスレッドが作成されるため。私は理にかなっていますか?
オリバー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.