第 7 层或第 4 层负载均衡

问题描述 投票:0回答:3

我不明白第 7 层和第 4 层负载均衡之间有什么区别。

其中一个比另一个更好吗?我如何决定哪个更适用于我的系统?

.net iis-7 load-balancing iis-7.5 osi
3个回答
6
投票

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

它们之间的区别在于您在哪里(哪个 OSI 层)进行平衡。在我看来,你应该永远不仅在第 7 层上进行平衡(那么你应该始终使用第 4 层)。

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

  • 性能不太好:负载均衡器必须跟踪 cookie 和会话(需要时),为此您需要更强大的硬件。正确的方法应该是让应用程序来正确管理这一点。要克服这个问题,您需要更强大的硬件。
  • 负载分布在服务器之间,但要实现true负载平衡并不容易。很多时候,它只是简单地注入 DNS 服务器中,然后它并不真正了解服务器的繁忙程度(想象一下,您有一个密集型操作和两个轻量级操作要分派到两台服务器,循环法可能会分配一个密集型操作和一个当最好的可以将轻量级分配给同一服务器时)。
  • 它们根本不可扩展(它们必须管理您的应用程序应该管理的内容),并且会浪费大量资源。

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

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

我发现一些有趣的事情,这里(关于第 7 层负载均衡的优点)他们说:

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

如果(这些优点的)用例“仍然相当有限”,并且我们必须等待“随着这项技术的发展”,那么我认为没有任何理由将NOW任何负载均衡解决方案仅建立在层上7(而且,将来任何时候都可以轻松添加)。


4
投票

第 4 层负载均衡器根据网络和传输层协议(IP、TCP、FTP、UDP)中的数据进行操作。

第 7 层负载均衡器根据应用层协议(例如 HTTP)中的数据分发请求。它还可以根据特定数据(如 HTTP 标头、cookie 或 http 特定参数内的数据)分发请求。

所以第 4 层负载均衡器是 tcp 负载均衡器,而第 7 层负载均衡器是 http 负载均衡器。


0
投票
Feature
Layer 7
Layer 4
协议 应用层(HTTP/s) 网络层(TCP/IP)
另一个名字 软件负载均衡器 硬件负载均衡器
灵活性 更灵活 不太灵活
成本 性价比高 非常昂贵
管理者 应用程序开发人员一般 系统管理员,网络员工
部署 非常简单 很难与L7比较
© www.soinside.com 2019 - 2024. All rights reserved.