私が取り組んでいる新しいプロジェクトについて、低レイテンシーと高並行性を必要とするガイダンスを求めています。このプロジェクトでは、サードパーティのフィードからライブデータを受信し、基本的な処理と保存を行った後、これらの値をWebサイトで現在アクティブなすべてのユーザーに送信します。
データはHTTPプッシュ経由で到着します。現在の計画では、Node.jsを使用してこのデータを受信し、アルゴリズムを介してデータを実行してから、ある種のデータベースの関連データを更新します。最後に、更新はWebSocketを介してWebサイトの接続されているすべてのユーザーに送信されます。
今、私はこれをスケーラブルにして、10,000人を超える接続ユーザーを一度に処理しようとしています。すべてのユーザーはWebSocketを介して接続され、約3秒に1回更新を送信します。この間、各ユーザーがWebアプリを操作できることを考えると、多くのリクエストがやり取りされることになります。
さて、私が持っている高レベルの基本的な考え方は別として、WebサイトフレームワークとしてRuby on Railsを使用し、そのすべての「活気」を処理するノードjsを使用するという決定で-私は少し立ち往生しています。使用するデータベースの種類がわからず(クイックストレージ用の非リレーショナルデータベースになると思います)、そのようなセットアップを設計する方法の詳細と、ロジックを実装する方法もわかりません。 。
だから私の質問は次のとおりです。私の目標を考えると、そのようなアプリケーションをどのように構築し、希望するレベルまでスケーラブルでリアルタイムにするために何を知る必要がありますか?
助けてくれてありがとう。