为什么使用云负载均衡器进行 Cloud Run 的 WebSocket 连接?

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

我已成功创建从 GCP Cloud Run 实例到外部系统的 WebSocket 连接。我严格遵循 GCP 官方文档,一切都按预期运行。

但是,文档还建议在 Cloud Run 服务前面使用 Cloud Load Balancer 来发起 WebSocket 连接。不幸的是,它没有提供明确的解释为什么这是必要的。

参考图片:
enter image description here

有人可以澄清在这种情况下使用云负载均衡器的具体好处或原因吗?使用负载均衡器进行 WebSocket 连接时是否有任何潜在的缺点或性能影响需要考虑?

文档链接

任何见解或解释将不胜感激。

google-cloud-platform google-cloud-run gcp-load-balancer
1个回答
0
投票

Cloud Run 仅支持

HTTPS connections
,不支持 raw
TCP ports
。您可以使用中介服务来处理原始
TCP
并将这些请求转换为
HTTPS
。理论上,
load balancer
可以轻松地将
TCP
连接转换为其中之一。

Cloud Run 仅支持

HTTP
WebSockets and gRPC and not TCP
。您可以使用
VPC
让 Cloud Run 与
Serverless VPC Connector
中的其他 GCP 服务进行通信,或在负载均衡器后面使用
internal IP address
公开它。

您还可以使用

Load balancer
和 Google 提供的
Cloud Armor
来防御
DDoS
攻击,而不会影响
Cloud Run
的扩展。

如果资源是具有用户的

Cloud VPN gateway
on-prem services
无法访问服务(尽管位于同一项目和/或 VPC 边界上),则可以使用
Private Service Connect or Internal Load Balancer

Websocket
连接可以保持很长时间。
HTTP and TCP/SSL Proxy
的后端服务超时行为有所不同。如果你想要很长的
Websocket connections
,那么你应该使用
Network Load Balancing

总体而言,

GCP Load Balancer
可以从
WebSocket connections
显着提高
Cloud Run
的可用性、可扩展性和安全性。另一方面,虽然
Load Balancer
增加了少量延迟,但其好处通常超过了这个小缺点。

请参阅云负载平衡:用于安全、私密地访问 Cloud Run 服务的综合解决方案,并查看示例使用 Cloud Run 部署安全的无服务器架构以了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.