1

最終的に何百万人ものユーザーになる可能性のある、効率的なプライベート メッセージング システムを必要とする Web とモバイルの両方のアプリがあります。頭に浮かぶのは、誰もがどこかで使用しているメッセージ ボードの PM システムと、Jabber/XMPP インスタント メッセージング プロトコルだけです。

理想的には、エンドユーザーのレイアウト (特定の友人からのすべてのメッセージが同じページに表示される) という点で Facebook のチャット システムに似たものになりますが、それはほとんど UI を調整するだけの問題です。

最も恐ろしいのは、この PM システムが潜在的に何百万ものユーザーのために機能する必要があるという考えです。これほど多くのユーザーがいる場合、何を実装しようとすればよいでしょうか?

現在Pusherを検討中ですが、コストが気になります。

4

1 に答える 1

0

PlayOrm と Cassandra と playframework を最初に使用して、非常に単純なテーブルを用意することができます。playframework を使用すると、長いポーリング用の websocket を実行するのが非常に簡単になり、playframework はわずか数スレッドで数千のソケットを実行できます。数千人のユーザー向けに設計するのと同じように、数百万人のユーザー向けに設計するのは簡単に思えます。私は数千人のユーザー向けに設計することに同意します。最近では、スケーラブルなソリューションをすぐに設計できます。

あなたが本当に解決する必要があると私が思う他の唯一のことは、1つのリクエストが1つのプレイサーバーに届いたときに、どのサーバーがイベントをリッスンしているWebSocketを持っているかわからないため、他のすべてのサーバーにメッセージを送信する必要があることです.. ..それを解決するのに役立つライブラリがいくつかあります。

それで

  1. ユーザーのメッセージ キューにアイテムを格納する
  2. 他のすべての Web サーバーにメッセージを送信する ユーザー X、Y、Z へのメッセージがあります (負荷を軽減するために、多数の着信を 1 つのメッセージにグループ化します)
  3. ユーザー X、Y、Z 用の websocket を持つサーバーは、受信したばかりのメッセージでそれぞれのユーザーに簡単に応答できます。

考えるのが楽しい問題です。

ディーン

于 2012-11-15T22:48:07.010 に答える