我想念第 7 层或第 4 层应用负载平衡的区别。其中之一更好吗?我如何决定哪个更适用于我的系统?
提前致谢 ...
我想这可能是一个非常激烈的讨论,无论如何它与编程无关,但是......
它们之间的区别在于您在哪里(哪个OSI层)进行平衡。在我看来,你永远不应该只在第 7 层上进行平衡(那么你应该总是使用第 4 层)。
为什么?第 7 层负载平衡很好,因为您不需要任何特殊的硬件,它是在应用程序级别完成的,但是您为此付出了许多其他缺点:
为什么他们是好的?它们可能是修补不可扩展应用程序的快速、简单、肮脏的解决方案(对于第 4 层平衡,您的 ASP.NET 应用程序本身应该是可扩展的)。它们可能是临时问题的临时解决方案,而不是解决方案。在现实世界中,第 4 层负载平衡是首选(有时与第 7 层平衡混合,例如 Google 使用第一级循环 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 负载均衡器。