繁体   English   中英

使用 HTTP2 如何限制并发请求的数量?

[英]Using HTTP2 how can I limit the number of concurrent requests?

我们有一个通过 HTTP1.1 工作的系统client <-> server 客户端向服务器发出数百(有时数千)个并发请求。

因为浏览器对 HTTP1.1 连接的默认限制,客户端实际上是分批(6~8)个并发请求发出这些请求,我们认为如果我们可以增加并发请求的数量,我们可以得到一些性能提升。

我们将系统移到 HTTP2 上工作,我们看到客户端根据我们的需要同时请求所有请求。

现在的问题恰恰相反:服务器无法处理这么多并发请求。

我们如何将客户端同时执行的并发请求数量限制为服务器更易于管理的事情? 假设 50 ~ 100 个并发请求。

我们假设 HTTP2 可以让我们对并发连接数进行分级:

使用 HTTP/2,客户端可以完全控制服务器推送的使用方式。 客户端可以限制并发推送的流数; 调整初始流量控制窗口,控制首次打开流时推送的数据量; 或完全禁用服务器推送。 这些首选项通过 HTTP/2 连接开始时的 SETTINGS 帧进行通信,并且可以随时更新。

也在这里:

哦,如果可能的话,我们可以在服务器端限制它(我认为更易于维护)。

但看起来这些解决方案是在谈论服务器推送,而我们所拥有的是客户端拉取。

如果有任何帮助,我们的架构如下所示:

Client ==[http 2]==> ALB(AWS Beanstalk)  ==[http 1.1]==> nginx  ==[http 1.0]==> Puma

SETTINGS框中有特殊设置

您可以在服务器端将SETTINGS_MAX_CONCURRENT_STREAMS指定为100

参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM