有谁知道云运行是否支持 http/2 流,而它不支持 http1.1 流?



我们有一个流式处理终结点,其中数据通过我们的 api.domain.com 服务流式传输到我们的 backend.domain.com 服务,然后在 backend.domain.com 中接收到块时,我们将这些块写入数据库。 这样,我们可以将请求ndjson发送到我们的服务器中,并且它很快,非常快。

我们非常非常失望地发现http1.1的云运行防火墙至少(通过curl(不支持流媒体!!! curl 正在对 Google Cloud 运行防火墙执行 HTTP2,默认情况下,Google 使用 http1.1 访问我们的服务器(出于某种原因,尽管我看到了以 http2 模式启动的选项,但我们尚未尝试过(。

我的意思是,他们不支持流媒体,在他们收到整个请求之前,谷歌不会向我们的服务器发送请求!!(即,不仅仅是标头,它需要接收整个正文。这使得事情变得非常慢,而不是直接通过防火墙 1、云运行服务 1、防火墙 2、云运行服务 2、数据库进行流式传输。

我想知道谷歌的云运行防火墙是否偶然支持 http/2 流,并且实际上发送请求标头而不是等待整个正文。

意识到谷歌有体型限制......而且我意识到在接收整个身体之前,我们以 200OK 响应客户端d(即我们在流式传输请求时流回(,所以,如果超过大小限制,我完全可以接受谷歌杀死连接。

所以我在这篇文章中的第二个问题是,如果他们确实支持流媒体,当超过大小时他们会怎么做,因为那时我已经用 2000k 回应了。

在这篇文章中,我对流媒体的定义是"真正的流媒体"。 您可以将请求流式传输到系统中,该系统可以将其转发到下一个系统并继续读取/转发和读取/转发,而不是等待整个请求。 谷歌云运行防火墙不是我对流媒体的定义,因为它不会通过它收到的块! 我们的服务器在接收数据时发送数据,因此如果有很多跃点,由于 webpieces 网络服务器,不会产生影响。

不幸的是,Cloud Run 不支持服务实例的端到端 HTTP/2。

服务器端流式处理采用 ALPHA 版。不确定它是否有助于解决您的问题。如果是这样,请填写以下表格以选择加入,谢谢!

https://docs.google.com/forms/d/e/1FAIpQLSfjwvwFYFFd2yqnV3m0zCe7ua_d6eWiB3WSvIVk50W0O9_mvQ/viewform

最新更新