ライブチャットクライアント(Skype、Windows Live Messenger)は、ソケットを使用して相対的なサービスに接続していると仮定して、サーバーを拡張するために開発者が実装するいくつかの戦略はありますか? Xbox LIVEのようなシステムでも、ユーザーはオンラインチャットにチャットしてゲームの招待状を送ることができます。ソケットサーバーのスケーリング
主な問題は、これらの接続のそれぞれが状態を共有する必要があることです。この状態の一部は、他のクライアント(世界の反対側のロードバランサの背後にある別のサーバーに接続できる)によって照会される必要があります。最も明白なのはオンラインステータスです。
これらのサービスは、世界中のすべてのサーバーが接続し、必要な状態情報を更新および取得する、巨大なRAMベースのキャッシュ(memcachedのようなもの)またはNoSQLデータベース(Cassandraなど)を使用しますか?
私は、この種のソリューションが上記のようなリアルタイムサービスには十分速い(または合理的である)のだろうかと思いました。
私の主な問題はメモリです。ロードバランサとラウンドロビンDNSバランシングを組み合わせることで、負荷を分散することはかなり簡単です(希望です)。
これは非常に有用なリンクでした。 – irwinb