使用第7层或第4层进行负载平衡

Was*_*sim 2 .net iis-7 load-balancing iis-7.5

我很想知道应用负载均衡的Layer7或Layer4之间有什么不同.其中一个更好吗?我如何决定哪个更符合我的系统?

提前致谢 ...

Adr*_*tti 6

我想这可能是一个非常强烈的讨论,无论如何它与编程无关,但......

它们之间的区别在于您(哪个OSI层)进行平衡.在我看来,你永远不应该只在第7层做平衡(那么你应该总是使用第4层).

为什么?第7层负载平衡是好的,因为你不需要任何特殊的硬件,它是在应用程序级别完成的,但你需要付出很多其他的缺点:

  • 性能不是很好:负载均衡器必须跟踪cookie和会话(需要时),为此你需要一个更强大的硬件.正确的方法应该是让应用程序正确管理它.要覆盖它,您需要更强大的硬件.
  • 负载分布在服务器上,但要实现真正的负载平衡并不容易.通常它只是在DNS服务器中注入的东西,然后它不知道服务器忙多少(想象你有一个密集和两个轻量级操作分派到两个服务器,循环可以分配一个密集和一个当最好的可以将轻量级分配给同一服务器时,轻量级到同一服务器).
  • 它们根本不具备可扩展性(它们必须管理您的应用程序应该管理的内容),并且会浪费大量资源.

为什么他们好?它们可以是一个快速,简单,脏的解决方案来修补不可伸缩的应用程序(对于第4层平衡,您的ASP.NET应用程序应该可以自行扩展).它们可能是解决偶然问题的临时解决方案,而不是解决方案.在现实世界中,第4层负载平衡是首选(有时与第7层平衡混合,例如Google使用第一级循环dns负载平衡).

阅读这篇关于负载平衡的非常好的文章:http://1wt.eu/articles/2006_lb/index.html

我发现有趣的东西,这里(关于第7层负载平衡的优点)他们说:

虽然用例仍然相当有限,但第7层负载平衡的这种功能确实为将来的使用开辟了许多可能性.随着这项技术的发展,我们将能够更智能地平衡其他类型的流量.

如果用例(这些优势)是" 仍然相当有限, "我们必须等待该" 随着这项技术的发展 ",那么我看不出有任何理由基地NOW任何负载只在7层平衡解决方案(而且它的东西很容易在未来的任何时刻添加).