1

我们有一个 Web 服务,目前每秒响应大约 300 万个 HTTP 请求。每个后端服务器能够处理大约 500 万个请求。所以瓶颈是 HTTP 前端。

因此,问题与负载均衡器的情况相反。我们通过让许多前端服务器将传入请求聚合大约 1 毫秒来解决这个问题。一旦特定前端服务器达到整毫秒,我们使用现有的单套接字连接将所有批处理请求(大约 100 个)发送到后端服务器。

这意味着我们的后端服务器获取包含一百个原始 HTTP 请求的请求,并以包含一百个请求的响应进行响应。

是否有标准协议来多路复用/批处理/聚合 HTTP 请求?HTTP2 中的多路复用将重点放在对单个请求的多个响应上。

4

2 回答 2

1

HTTP2 多路复用不适用于对单个请求的多个响应。HTTP2 被设计为允许通过单个连接进行多个请求而不会阻塞行头 - 即响应可以以任意顺序返回。

根据您的响应的大小,我认为 HTTP2 可能会为您提供一些东西.....但是,如果您的响应很大和/或它们都花费大约相同的时间,因此行头阻塞不是问题,那么流水线 HTTP1 可能会消耗更少的 CPU。

于 2015-02-12T23:08:33.173 回答
0

不,HTTP/2 的多路复用是在单个物理连接上的完整请求-响应对。在 HTTP/2 的情况下,浏览器应该能够使用单个 TCP 连接查看包含数百个对象的站点。

因此,这听起来像是一个适合您的用例的协议。

于 2015-02-12T23:05:17.237 回答