2

私はプロジェクトを立ち上げていますが、主な質問の 1 つは、簡単なメッセージ キューイング システム (メッセンジャー チャット システムに沿ったもの) を実装する方法です。ポーリングを避けたいのですが、多くの同時接続 (数万) が発生する可能性が高くなります。これらは、ブラウザではなくアプリケーションから開始される HTTP+SSL 接続になります。

私が見つけた解決策の 1 つは、DNS 負荷分散です。これらの永続的な接続を多数の nginx Web サーバーに分散させます。

どう思いますか?他に考えられる解決策はありますか?

4

4 に答える 4

2

負荷分散の場合、アプリケーションサーバーをステートレスに保つと、フィールドが大幅に広がります。それができたら、ほとんどすべての汎用ロードバランサーを自由に使用できます。HTTPロードバランサーのような特定のプロトコルから一般的なTCPレベルのロードバランサーまで。

ステートレスに保つと、残りは比較して取るに足らないものになります。

于 2009-02-20T17:45:10.590 に答える
1

Web サービス (XML メッセージ パッシング ) の使用を計画している場合は、スレッド プールを使用する Web サーバー サンプル アプリケーションが含まれている gsoap を使用できます。これとmysql(永続状態用)を使用してサーバーを実行しました。アプリケーションのステートフルネスを削減/排除することについて Ryan に同意します。

于 2009-02-20T17:56:33.620 に答える
0

DNS 負荷分散を使用すると、複数のサーバーである可能性がある複数の IP アドレス間でクエリを分散できます。クライアントはリクエストごとに異なるサーバーを取得する可能性があるため、アプリケーションはローカル状態管理を使用できないことに注意してください。アプリケーションは、その状態をデータベースなどの中央の場所に保存する必要があります。

于 2009-02-20T17:32:05.037 に答える
0

ピアツーピアについて考えたことはありますか? ファイアウォールを突破する最新技術は、特に各インスタンスで独自のクライアント ソフトウェアを実行していて、接続を開始するサーバーがあるため、実際には非常に効果的です。

作業は増えますが、サーバー リソースは大幅に少なくなります。

また、独自のサーバー ソフトウェアを作成します。負荷分散を行う前に、多数の接続を処理でき、非常に軽量であり、サーバーごとに数千の接続を処理できることを確認してください。

-アダム

于 2009-02-20T17:36:15.417 に答える