我们有一个基于HTTP1.1的系统client <-> server
。客户端正在向服务器发出数百(有时是数千)个并发请求。
由于浏览器的默认限制为HTTP1.1连接,因此客户端实际上是按6个到8个并发请求批量发出这些请求的,因此,我们认为,如果可以增加并发请求的数量,则可以提高性能。
我们将系统移到了HTTP2上,我们看到客户端可以根据需要同时请求所有请求。
现在的问题正好相反:服务器无法处理那么多并发请求。
如何将客户端同时执行的并发请求的数量限制为服务器可管理的数量?,例如说50到100个并发请求。
我们假设HTTP2可以让我们毕业并发数量 连接:
使用HTTP / 2,客户端可以完全控制服务器推送的方式 用过的。客户端可以限制并发推送的流的数量; 调整初始流量控制窗口以控制有多少数据 在首次打开流时推动;或禁用服务器推送 完全。这些首选项通过SETTINGS框架传达 在HTTP / 2连接的开头,并且可以随时更新 时间。
也在这里:
O,如果可能的话,我们可以将其限制在服务器端(我认为这更易于维护)。
但是这些解决方案似乎正在讨论Server Push,而我们所拥有的就是客户拉动。
以任何方式提供帮助时,我们的架构如下:
Client ==[http 2]==> ALB(AWS Beanstalk) ==[http 1.1]==> nginx ==[http 1.0]==> Puma