2

負荷分散を適用するLayer7とLayer4の違いを理解できていません。それらの1つはより良いですか?システムに適用できるものをどのように決定できますか?

前もって感謝します ...

4

2 に答える 2

7

これは非常に強力な議論になる可能性があり、とにかくプログラミングとは関係ありませんが...

それらの違いは、どこ(どのOSI層)でバランシングを行うかです。私の意見では、レイヤー7だけでバランシングを行うべきではありません(その場合は常にレイヤー4を使用する必要があります)。

なんで?レイヤー7の負荷分散は、特別なハードウェアを必要としないため優れています。アプリケーションレベルで実行されますが、他にも多くの欠点があります。

  • パフォーマンスはそれほど良くありません。ロードバランサーはCookieとセッションを追跡する必要があります(必要な場合)。このためには、より強力なハードウェアが必要になります。正しい方法は、アプリケーションにこれを適切に管理させることです。これをオーバーライドするには、より強力なハードウェアが必要になります。
  • 負荷はサーバー間で分散されますが、真の負荷分散を実現するのは簡単ではありません。多くの場合、これは単にDNSサーバーに注入されたものであり、サーバーがどれだけビジーであるかについての真の知識がありません(2つのサーバーにディスパッチする1つの集中的な操作と2つの軽量な操作があると想像してください。ラウンドロビンは、1つの集中的な操作と1つの集中的な操作を割り当てる場合があります。両方の軽量を同じサーバーに割り当てることができる場合は、同じサーバーに軽量。
  • これらはスケーラブルではなく(アプリケーションが管理する必要があるものを管理する必要があります)、多くのリソースを浪費します。

なぜ彼らは良いのですか?これらは、スケーラブルでないアプリケーションにパッチを適用するための迅速で簡単なダーティソリューションである可能性があります(レイヤー4のバランシングでは、ASP.NETアプリケーションはそれ自体でスケーラブルである必要があります)。それらは、解決策ではなく、偶発的な問題に対する一時的な解決策である可能性があります。現実の世界では、レイヤー4の負荷分散が推奨されます(レイヤー7の分散と混合されることもあります。たとえば、Googleは第1レベルのラウンドロビンDNS負荷分散を使用します)。

負荷分散に関するこの非常に優れた記事を読んでください:http://1wt.eu/articles/2006_lb/index.html

ここで(レイヤー7の負荷分散の利点について)面白いと思ったことがあります。

ユースケースはまだかなり限られていますが、レイヤー7の負荷分散のこの機能は、将来の使用に向けて多くの可能性を開きます。このテクノロジーが進化するにつれて、追加のタイプのトラフィックをよりインテリジェントにバランスさせることができるようになります。

(これらの利点の)ユースケースが「まだかなり制限されている」場合、「このテクノロジーが進化するにつれて」待つ必要があります。、負荷分散ソリューションをレイヤー7のみに基づいている理由はわかりません(さらに、これは本当に簡単なことです)。将来的に追加する)。

于 2012-05-09T14:08:53.327 に答える
3

レイヤー4ロードバランサーは、ネットワークおよびトランスポートレイヤープロトコル(IP、TCP、FTP、UDP)で見つかったデータに基づいて動作します。

レイヤー7ロードバランサーは、HTTPなどのアプリケーションレイヤープロトコルで見つかったデータに基づいてリクエストを分散します。また、HTTPヘッダー、Cookie、httpの特定のパラメーター内のデータなどの特定のデータに基づいてリクエストを配信することもできます。

したがって、レイヤー4ロードバランサーはtcpロードバランサーですが、レイヤー7ロードバランサーはhttpロードバランサーです。

于 2014-08-12T11:33:45.353 に答える