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

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

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

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

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

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

我们如何限制客户端同时执行的服务器可管理的并发请求数量?让我们说50~100个并发请求。

我们假设HTTP2可以允许我们研究并发连接的数量:

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

也在这里:

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

但看起来这些解决方案正在谈论Server Push,我们所拥有的是客户端拉动。

如果以任何方式提供帮助,我们的架构如下所示:

Client ==[http 2]==> ALB(AWS Beanstalk)  ==[http 1.1]==> nginx  ==[http 1.0]==> Puma
ajax nginx request http2
1个回答
1
投票

SETTINGS框架中有特殊设置

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

Reference

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