我是 GCP 的新手,如果您有 HTTP 服务,我对负载平衡设置感到非常困惑(我在这里问了一个关于 TCP 负载平衡的不同问题:GCP 中目标池的目的(。
看起来,如果你有一个使用HTTP的服务,并且你想使用负载平衡,你必须创建许多不同的组件来实现它。
在我在 Qwiklabs (https://google.qwiklabs.com/focuses/558?parent=catalog( 中学习的教程中,您需要进行设置,以便请求流如下所示:转发规则 ->目标HTTP 代理 -> URL 映射 ->后端服务 ->托管实例组。但是,它并没有真正解释这些事情之间的关系。
我认为托管实例组的目的很明确,但我不了解其他实例组之间的关系或其用途。您能否提供其他组件的简单定义并描述它们之间的区别?
所有这些实体都不是不同的组件 - 它们只是以更灵活和结构化的方式对配置进行建模的一种方式。
-
转发规则:这只是IP和端口到目标代理的映射。您可以有多个转发规则指向同一目标代理 - 当您想要添加另一个 IP 地址或稍后启用 IPv6 或其他端口而无需重新部署整个负载均衡器时,这很方便。
-
目标代理:这都是关于如何处理连接。对于目标 HTTP 代理,它会设置 HTTP 处理。使用目标 HTTPS 代理,您还可以配置 SSL 证书。
URL 映射:这仅在 HTTP/HTTPS 情况下才有意义 - 由于 HTTP/HTTPS 代理解析请求,它可以根据请求的 URL 做出决策。使用 URL 映射,您可以将网站的不同部分发送到不同的服务 - 例如,这对于微服务架构非常有用。
后端服务:这封装了一组可以处理一类请求的服务器/端点的概念。后端服务允许你微调负载均衡的某些方面,例如会话相关性、等待后端的时间、如果后端不正常该怎么办以及如何检测它。后端集可以由实例组(带或不带自动缩放等(标识,但也可以是用于提供静态内容的 GCS 存储桶之类的东西。
拥有所有这些独立实体的原因是让您混合和匹配或重用有意义的部分。例如,如果您有某种实时通信平台,则可能有 Web 和 RTC 流量的转发规则。网络流量可能会通过带有 URL 映射的 HTTP(S( 代理,从 GCS 存储桶提供静态内容。RTC 流量可能通过目标 TCP 代理甚至 UDP 网络级负载均衡器,但指向同一组后端/同一实例组。