2011-09-27 5 views
2

ライブチャットクライアント(Skype、Windows Live Messenger)は、ソケットを使用して相対的なサービスに接続していると仮定して、サーバーを拡張するために開発者が実装するいくつかの戦略はありますか? Xbox LIVEのようなシステムでも、ユーザーはオンラインチャットにチャットしてゲームの招待状を送ることができます。ソケットサーバーのスケーリング

主な問題は、これらの接続のそれぞれが状態を共有する必要があることです。この状態の一部は、他のクライアント(世界の反対側のロードバランサの背後にある別のサーバーに接続できる)によって照会される必要があります。最も明白なのはオンラインステータスです。

これらのサービスは、世界中のすべてのサーバーが接続し、必要な状態情報を更新および取得する、巨大なRAMベースのキャッシュ(memcachedのようなもの)またはNoSQLデータベース(Cassandraなど)を使用しますか?

私は、この種のソリューションが上記のようなリアルタイムサービスには十分速い(または合理的である)のだろうかと思いました。

私の主な問題はメモリです。ロードバランサとラウンドロビンDNSバランシングを組み合わせることで、負荷を分散することはかなり簡単です(希望です)。

答えて

3

ここにはone wayです。必ずしもメモリベースのキャッシュには関係しませんが、

+0

これは非常に有用なリンクでした。 – irwinb

関連する問題