負荷分散を適用するLayer7とLayer4の違いを理解できていません。それらの1つはより良いですか?システムに適用できるものをどのように決定できますか?
前もって感謝します ...
負荷分散を適用するLayer7とLayer4の違いを理解できていません。それらの1つはより良いですか?システムに適用できるものをどのように決定できますか?
前もって感謝します ...
これは非常に強力な議論になる可能性があり、とにかくプログラミングとは関係ありませんが...
それらの違いは、どこ(どのOSI層)でバランシングを行うかです。私の意見では、レイヤー7だけでバランシングを行うべきではありません(その場合は常にレイヤー4を使用する必要があります)。
なんで?レイヤー7の負荷分散は、特別なハードウェアを必要としないため優れています。アプリケーションレベルで実行されますが、他にも多くの欠点があります。
なぜ彼らは良いのですか?これらは、スケーラブルでないアプリケーションにパッチを適用するための迅速で簡単なダーティソリューションである可能性があります(レイヤー4のバランシングでは、ASP.NETアプリケーションはそれ自体でスケーラブルである必要があります)。それらは、解決策ではなく、偶発的な問題に対する一時的な解決策である可能性があります。現実の世界では、レイヤー4の負荷分散が推奨されます(レイヤー7の分散と混合されることもあります。たとえば、Googleは第1レベルのラウンドロビンDNS負荷分散を使用します)。
負荷分散に関するこの非常に優れた記事を読んでください:http://1wt.eu/articles/2006_lb/index.html
ここで(レイヤー7の負荷分散の利点について)面白いと思ったことがあります。
ユースケースはまだかなり限られていますが、レイヤー7の負荷分散のこの機能は、将来の使用に向けて多くの可能性を開きます。このテクノロジーが進化するにつれて、追加のタイプのトラフィックをよりインテリジェントにバランスさせることができるようになります。
(これらの利点の)ユースケースが「まだかなり制限されている」場合、「このテクノロジーが進化するにつれて」待つ必要があります。今、負荷分散ソリューションをレイヤー7のみに基づいている理由はわかりません(さらに、これは本当に簡単なことです)。将来的に追加する)。
レイヤー4ロードバランサーは、ネットワークおよびトランスポートレイヤープロトコル(IP、TCP、FTP、UDP)で見つかったデータに基づいて動作します。
レイヤー7ロードバランサーは、HTTPなどのアプリケーションレイヤープロトコルで見つかったデータに基づいてリクエストを分散します。また、HTTPヘッダー、Cookie、httpの特定のパラメーター内のデータなどの特定のデータに基づいてリクエストを配信することもできます。
したがって、レイヤー4ロードバランサーはtcpロードバランサーですが、レイヤー7ロードバランサーはhttpロードバランサーです。