Cloud 运行 实例如何感知来自 HTTP2 连接的多个请求?

How do Cloud Run instances perceive multiple requests from HTTP2 connections?

HTTP2 具有此 多路复用 功能。

从这个[答案](简单地说,多路复用允许您的浏览器在同一个连接上同时发出多个请求并以任何顺序接收请求。)我们得到:

Put simply, multiplexing allows your Browser to fire off multiple requests at once on the same connection and receive the requests back in any order.

假设我将我的应用拆分为 50 个小的捆绑文件,以利用多路复用通信。

我的服务器是一个 express 应用程序,托管在 云 运行 实例中。

这是Cloud Run says about concurrency:

By default Cloud Run container instances can receive many requests at the same time (up to a maximum of 250).

那么,如果 5 个用户同时点击我的应用程序,是否意味着我的实例将在短时间内达到最大容量?

因为每个浏览器(来自 5 个用户)将发出 50 个请求(针对 50 个小的捆绑文件),因此总共有 250 个。

多路复用流量发生在同一连接上这一事实是否改变了任何事情?它是如何工作的?

这是否意味着我的云 运行 将感知 5 个连接而我的 express 服务器将感知 250 个请求?我想我对这两个角度(云 运行 实例和快速服务器)中的 request 表达式感到困惑。

“请求”是:

  • 服务器端与客户端(此处为浏览器)建立连接
  • 数据传输
  • 连接关闭。

借助 HTTP2 和 websocket 的流式处理能力,连接可能需要几分钟(最多 1 小时),您可以根据需要通过通道发送数据。 1 个连接 = 1 个请求,5 个连接 = 5 个请求。

但请记住,保持此连接处于打开状态并在其中处理数据会消耗后端资源,而且您不能拥有数十个主动 send/receive 数据的连接,否则您的实例就会饱和。