1

私はしばらくの間Clojureについて読んでいて、Node.js(別のプロジェクトで使用したもの)の代わりとして考えています。最も有望なライブラリはAleph/Laminaのようですが、残念ながらNodeほど多くの例はありません。私の質問は次のとおりです。

  1. MongoDBからのドキュメントの読み取り、計算の実行、新しいドキュメントの保存、応答での送信など、一連の非同期操作でリクエストを処理するにはどうすればよいですか?Laminawikiページの例からは書き込めませんでした。かなり一般的なユースケースのように聞こえますが、それを示すコードが見つからなかったので驚きました。サンプルコードを見せていただければ幸いです。

  2. この設定は、高負荷のサーバー(たとえば、1秒あたり数万の要求)に適していますか?新しいリクエストごとに1つのスレッドを作成する余裕がないため、ノードアプローチに似たものが必要です。

  3. これを使っている中規模または大規模の会社の例はありますか?

  4. (Aleph / Lamina以外に)Nodeのより良いClojureの代替品はありますか?おそらくClojurescriptターゲットノード?私のクライアントはJavascriptで書かれていないので、クライアントとサーバーの両方で同じ言語を使用することは私の場合には利点ではありません。

ありがとう!

4

1 に答える 1

1

いくつかのポインタ:

  1. Laminaチャネルの抽象化を介してHTTP抽象化を構築するAlephを確認する必要があります。
  2. MongoDBへのドキュメントの読み取りと書き込みは非同期である可能性がありますが、ライブラリはこれを提供する必要があります。Node.jsでは、MongoDBライブラリは非同期である必要があります。そうでない場合、Nodeプログラミングモデルが台無しになります。Clojureの場合はそうではないため、おそらくClojureMongoDBライブラリは非同期機能を提供します。
  3. 非同期操作は、IOの場合、つまりmongodbへの読み取り/書き込み、応答の返送などの場合にのみ役立ちます。生成計算はCPUにバインドされた操作であり、非同期モデルとは関係ありません。
  4. Vert.xはJavaの世界のNode.jsです。Clojureのサポートはロードマップ上にあります。必要に応じて非同期と非非同期の世界でプレイできるので、私はアレフを好みます。
于 2012-11-23T04:20:55.037 に答える