我很想知道应用负载均衡的Layer7或Layer4之间有什么不同。 其中一个更好吗? 我如何决定哪个更符合我的系统?
提前致谢...
答案 0 :(得分:6)
我想这可能是一个非常强烈的讨论,无论如何它与编程无关但是......
它们之间的区别在于你在哪个(OSI层)进行平衡。在我看来,你应该从不仅在第7层进行平衡(那么你应该总是使用第4层)。
为什么呢?第7层负载平衡是好的,因为你不需要任何特殊的硬件,它是在应用程序级别完成的,但是你付出了很多其他的缺点:
为什么他们好?它们可以是一个快速,简单,脏的解决方案来修补不可伸缩的应用程序(对于第4层平衡,您的ASP.NET应用程序应该可以自行扩展)。它们可能是解决偶然问题的临时解决方案,而不是解决方案。在现实世界中,第4层负载平衡是首选(有时与第7层平衡混合,例如Google使用第一级循环dns负载平衡)。
阅读这篇关于负载平衡的非常好的文章:http://1wt.eu/articles/2006_lb/index.html
我发现有趣的东西here(关于第7层负载平衡的优点)他们说:
虽然用例仍然相当有限,但第7层负载平衡的这种功能确实为将来的使用开辟了许多可能性。随着这项技术的发展,我们将能够更智能地平衡其他类型的流量。
如果用例(具有这些优势)是“仍然相当有限”,我们必须等待“随着这项技术的发展”然后我看不出任何理由仅在第7层上基于 NOW 任何负载平衡解决方案(此外,它在将来的任何时刻都很容易添加)。
答案 1 :(得分:3)
第4层负载均衡器对网络和传输层协议(IP,TCP,FTP,UDP)中的数据起作用。
第7层负载均衡器根据应用层协议(如HTTP)中的数据分发请求。它还可以根据http的特定参数中的HTTP标头,cookie或数据等特定数据分发请求。
因此第4层负载均衡器是tcp负载均衡器,而第7层负载均衡器是http负载均衡器。