我是AWS的新手。 我开始学习ALB和NLB。我知道ALB在第7层协议中工作,而NLB在第4层协议中工作。
有人可以解释ALB和NLB的实时示例吗?何时使用ALB和NLB?
即使所有Web应用程序都将使用TCP协议在服务器和客户端之间建立连接。
那么ALB是否使用TCP(第4层)协议?
那么它们之间有什么不同?谁能简要解释一下??
答案 0 :(得分:1)
TL; DR 要负载均衡HTTP请求,请使用ALB。对于TCP / UDP负载平衡,请使用NLB。
ALB(应用程序负载平衡器)可以理解HTTP。如果您需要进行基于HTTP的路由(例如,根据请求路径路由到其他目标),则需要使用ALB。
ALB的独特功能包括:
NLB(网络负载平衡器)在传输级别(TCP / UDP)上运行。 NLB比ALB具有更高的性能,因为它们不需要解析HTTP消息。
NLB也支持某些独特功能:
您可以在Elastic load balancing features page上看到功能的完整比较。
答案 1 :(得分:1)
总结:一个NLB只知道TCP,而一个ALB知道有关请求的所有信息。
NLB 只能基于IP地址和其他TCP程序包信息来路由请求。
ALB 可以通过查看请求的内容来路由请求:它使用的是哪种协议(HTTP,HTTPS)?它尝试查询什么路径(/api/v1
,/api/v2
)? content-type
要求什么?
因此,如果您希望将v1 API端点的请求路由到一个EC2实例的自动伸缩组,并将v2 API端点的请求路由到另一个实例组,那么最好的选择是ALB,因为它允许您配置使所需的路由成为可能的规则。
另一方面,如果只希望将来自德国的客户端路由到一个自动伸缩组,将来自美国的客户端路由到另一个组,则NLB应该足够,因为您可以设置与那些IP地址匹配的规则国家。