我不明白第 7 层和第 4 层负载均衡之间有什么区别。
其中一个比另一个更好吗?我如何决定哪个更适用于我的系统?
我想这可能是一个非常激烈的讨论,无论如何它与编程无关,但是......
它们之间的区别在于您在哪里(哪个 OSI 层)进行平衡。在我看来,你应该永远不仅在第 7 层上进行平衡(那么你应该始终使用第 4 层)。
为什么?第 7 层负载平衡很好,因为您不需要任何特殊的硬件,它是在应用程序级别完成的,但您为此付出了许多其他缺点:
为什么它们很好?它们可能是一种快速、简单、肮脏的解决方案,用于修补不可扩展的应用程序(为了第 4 层平衡,您的 ASP.NET 应用程序本身应该是可扩展的)。它们可能是偶然问题的临时解决方案,而不是解决方案。在现实世界中,第 4 层负载平衡是首选(有时与第 7 层平衡混合,例如 Google 使用第一级循环 dns 负载平衡)。
阅读这篇关于负载平衡的非常好的文章:http://1wt.eu/articles/2006_lb/index.html
我发现一些有趣的事情,这里(关于第 7 层负载均衡的优点)他们说:
虽然用例仍然相当有限,但第 7 层负载均衡的此功能确实为未来的使用开辟了许多可能性。 随着这项技术的发展,我们将能够更智能地平衡其他类型的流量。
如果(这些优点的)用例“仍然相当有限”,并且我们必须等待“随着这项技术的发展”,那么我认为没有任何理由将NOW任何负载均衡解决方案仅建立在层上7(而且,将来任何时候都可以轻松添加)。
第 4 层负载均衡器根据网络和传输层协议(IP、TCP、FTP、UDP)中的数据进行操作。
第 7 层负载均衡器根据应用层协议(例如 HTTP)中的数据分发请求。它还可以根据特定数据(如 HTTP 标头、cookie 或 http 特定参数内的数据)分发请求。
所以第 4 层负载均衡器是 tcp 负载均衡器,而第 7 层负载均衡器是 http 负载均衡器。
|
|
|
---|---|---|
协议 | 应用层(HTTP/s) | 网络层(TCP/IP) |
另一个名字 | 软件负载均衡器 | 硬件负载均衡器 |
灵活性 | 更灵活 | 不太灵活 |
成本 | 性价比高 | 非常昂贵 |
管理者 | 应用程序开发人员一般 | 系统管理员,网络员工 |
部署 | 非常简单 | 很难与L7比较 |