2012-04-06 10 views
4

私たちには、チャット機能を持つiOS向けのアプリケーションがあります。現在は長い投票で動作します。そして今、ソケットで動作するように変更しようとしています。それがソケットになると、私たちは研究を始めました。最良の選択肢の1つはsocket.ioでnodejsを使うことです。次に、redis pub/subを使用してメッセージの配信と格納を管理しました。nodejs、redis、mongodbでチャットベースのアプリケーションを設計するには?

レディスについていくつかの調査を行った後、推奨される使用法は、格納されたデータがメモリに収まるようにすることを推奨します。しかし、少し大きなデータベースがあります。チャットの履歴全体を保存したいと考えています。だから私たちはキャッシュデータベースとしてredisを使う計画を始めました。これは、オンラインユーザのチャット履歴を保存し(それらのすべてではないかもしれません)、redisからmongodb/simpledbにオフラインになった後に実際の会話を書く)。

要約すると、メッセージを配信するためにnodejsとredis pub/sub、キャッシュデータベースとしてredis、会話全体を格納するmongodbを使用することにします。

デザインについてどう思いますか?これは受け入れられますか?あるいは、あなたが提案できる良い方法があれば、もう少し説明していただけますか?

ありがとうございます。

答えて

3

チャットシステムの場合、あなたは大きく考えています。 100万人のユーザーに達すると思うなら、それを手に入れてください。また、可用性も考慮してください。システムがマシンの障害をどのように処理しますか?

関連する問題