ソケット通信探査(2)-socketクラスタ

  我々が持っている前のセクションでは、「ソケット通信は、探検する() 彼は考慮する必要がありましたので、実用的なアプリケーションはめったにこのように使用されていない」どのようにTCP接続を実装するが、これは単に最もジュニアBIOは達成の一つであり、スレッドプールを追加しませんでしたTCP接続の数が多いが確立されると、サーバーどのように安全かつ安定した動作?なぜ?

  (データがないが、それは詰まらない最後尾の実装上の)1、BIO実装は、ブロックしています。

  図2は、各サーバの接続を処理するためのスレッドを開いて、接続を切断する場合には、スレッドが解放されません。

  上記に基づき、接続確立の多数は、サーバーがリリーススレッドではなく、多くのを開きますと、スレッドはシステムリソースが不足する原因となるシステムリソースを占有する時間があり、何のシステムリソースの接続要求はありません、最も直接的な方法は、クラッシュを防ぐために、スレッドプールを追加することで、接続を処理し、多くのも、彼は他の方法を考えるために必要とされ、処理されるのを待っている、またはそれ以上の即時クラッシュプログラムされます。

  Webアプリケーションの要求が多数に直面したとき、我々はそのようなクラスタとして展開または同じトークンを配布される、我々はまた、複数のソケットサーバー用に展開することができることを私たちは皆知っています。

  TCP接続クライアントがポートでサーバーのIPを知っておく必要があるため、一般的には、この手段は、クライアントのニーズは、ロード・バランシング専用の当社のサーバー上のホストがありそうならば、すべてのターゲットサーバのアドレスとポートを知っていることその後、アドレスを完了するために、負荷分散のポートを選択し、クライアントに返され、クライアントは、実際の接続要求を開始します。図のように特定の要求は、(参照:以下https://wenku.baidu.com/view/d5769f85d4d8d15abe234e7c)。

  

  上記の数値は、すべてのクライアントが接続されている実サーバ(実サーバ)を得るためにサーバに接続するために、それは優先順位を与える実際にサーバロードバランシングの仮想サーバであり、通信処理の特定のモデルは以下の通りであります:

    SYNパケットがVSを聴いている①client。

    ②VSSYNパケットにRS、RSを選択するために、スケジューリングポリシーに応じました。

    VS SYNはVSに④RS応答、SYN ACKパケットのバックを要求します。

    クライアントへの受信SYN ACKパケットを④VS。

    5④client最後のACKハンドシェークパケットが直接RSに、クライアントへのこの時間は、接続状態を確立している、ACKパケットを受信した後、RSは、接続状態が確立されている入っています

    ⑥client直接通信し、RS、プロセスVSの独立しました

  TCPサーバークラスタの展開、特定の実装プロセスを完了するために、上記のモデルを経て、ないBenpianの範囲内で、存在のために、私は他のプログラムがある場合は、1つの実装は、私たちが相互にできることだけを知っています為替......

  

おすすめ

転載: www.cnblogs.com/onedayinMay/p/12203618.html