2011-05-09 2 views
1

私が作業している新しいプロジェクトのガイダンスの後に、待ち時間と同時実行性が必要です。このプロジェクトでは、サードパーティのフィードからライブデータを受信し、基本的な処理と保存の後、ウェブサイト上で現在アクティブなすべてのユーザーにこれらの値を送信します。受信したライブフィードデータを10,000人のユーザーにプッシュできますか?

HTTPプッシュ経由でデータが届きました。現在、Node.jsを使用してこのデータを受信し、アルゴリズムを使用してデータを実行してから、ある種のデータベースの関連データを更新します。最後に、websocketを介してウェブサイトの接続されたすべてのユーザーに更新が送信されます。

今、私はスケーラブルで一度に10,000人を超える接続ユーザーを処理しようとしています。これらはすべてwebsocket経由で接続され、約3秒に1回の更新を送信しました。この間、各ユーザーがWebアプリケーションとやりとりすることができれば、多くのリクエストが前後につながります。

私はRuby on Railsをウェブサイトのフレームワークとし、ノードのjsがすべての「活力」を処理するという決定を下して、私はちょっと立ち往生しています。どのような種類のデータベースを使用するのかはわかりません(高速ストレージのためのリレーショナルデータベースではないと思います)。そのような設定をどのように構築するのか、またロジックの実装方法の詳細はわかりません。

質問:私の目標を考えれば、このようなアプリケーションをどのように構造化すればよいのですか?また、自分が望むレベルまでスケーラビリティとリアルタイム性を持たせるために何を知る必要がありますか?

大変ありがとうございます。

答えて

3

私はいくつかの図書館を見ることをお勧めします。

  • nowリモートRPCは簡単です。
  • cradle couchdbデータベース永続ストレージの抽象化。
  • 'node_redis' redisクロスマシン通信のデータベース抽象化
  • clusterプログラムを複数のプロセスにまたがって拡張します。
+0

応答のおかげで、そこにいくつかのリンクがあります。 – ChasingPavements

+0

@ChasingPavements私はいくつかの特定の構造をお勧めすることができますが、一般的に少し曖昧です。 – Raynos

関連する問題