ウェブ開発では、レールとノードを混在させたいと思っています。両方の世界(高速ウェブ開発のためのレールと並行処理のためのレール)を最大限に活用したいからです。私は、一部の人々は、イベントコントローラを備えたフルルビースタックをレールコントローラに統合して、イベントループモデルでファイバを使用することですべての要求を非ブロックにすることを選択していることを知っています。私はそれがどのように大きな画像で動作するかを理解することができました。このmoementでrails、redis、およびnode.jsのリクエスト処理はどのように非同期ですか?
は、しかし、私は、メッセージキューの概念とレールとのNode.jsとノンブロッキングリクエストの処理を行って試してみたいです。私はこれが仲介者としてredisを使用することによって達成できると聞きました。私はまだそれが今のところどのように動くのか把握しようとするのに苦労している。私が理解できるものから、2つのアプリケーションA(レール)とB(ノードJ)と赤い線があります。 rails appはREST方式でコントローラを経由するユーザからのリクエストを処理し、そこからレールがredisを通過し、次にredisがキューを形成し、node.jsアプリケーションがそのキューをピックアップし、後で必要な処理を行いますバックエンドデータベースから読み取る)。
私の質問:
それでは、どのように並行性とスケーラビリティを向上させるのでしょうか?何よりも、 は、コントローラが を同期して要求を処理してから、redisに書き込むので、node.jsが最後にキュー を非同期的に受信できるとしても、要求は ブロックされます。 (私は非同期ではないと感じていますが、終了するのが最後でない場合は ノンブロッキングです)。
redis が仲介者の場合、node.jsはここでプロキシまたはアプリケーションと見なされますか?
私はRedisのために新たなんだと、まだそれを学びます。私はそのようにMongoDBやCouchDBのように私のバックエンドデータベースのための100%のNoSQL ソリューションを、使用している場合、彼らは完全にRedisのことで交換可能であるかのRedis以上のRabbitMQのような メッセージキューツールとして見られていますか?
メッセージングキューはスレッド化とは異なる同時実行性の概念ですか、または イベントループモデルとは異なりますか、またはそれらを補うものですか?
これはすべて私の質問です。私はメッセージキューの概念が初めてです。正しい方向への助けと指針、そして私がもっと学ぶのに役立つ記事を感謝します。ありがとう。