我们有一个Web服务,目前每秒响应大约300万个HTTP请求。每个后端服务器能够为大约500万个请求提供服务。所以瓶颈就是HTTP前端。
因此,问题与负载均衡器情况相反。我们通过让许多前端服务器聚合传入请求大约1毫秒来解决这个问题。一旦达到特定前端服务器的整整毫秒,我们就会使用现有的单个套接字连接将所有批量上传请求(大约100个)发送到后端服务器。
这意味着我们的后端服务器会收到包含一百个原始HTTP请求和答案的请求,其响应包含一百个请求。
是否有复用/批量/聚合HTTP请求的标准协议? HTTP2接口中的多路复用关注于对单个请求的多个响应。
答案 0 :(得分:1)
HTTP2多路复用不适用于单个请求的多个响应。 HTTP2被设计为允许单个连接上的多个请求而没有行头阻塞 - 即响应可以以任意顺序返回。
根据您的回复的大小,我认为HTTP2可能会为您提供一些东西.....但是如果您的回复很大和/或它们都需要大约相同的时间,那么行头阻塞不是问题,然后流水线化的HTTP1可能会少吃掉CPU。
答案 1 :(得分:0)
不,HTTP / 2的多路复用是通过单个物理连接的完整请求 - 响应对。在HTTP / 2情况下,浏览器应该能够使用单个TCP连接查看包含数百个对象的站点。
这听起来像是一个适合您用例的协议。