我已经实现了管道HTTP客户端。基本概念听起来很简单,但是错误处理非常困难。性能提升微不足道,以至于我们很久以前就放弃了这些概念。
我认为,这对于正常的用例来说是没有意义的。仅当请求具有逻辑连接时,它才有一些好处。例如,您有一个3请求事务,您可以将它们全部批量发送。但是通常,如果可以管道化它们,则可以将它们组合为一个请求。
以下只是我记得的一些障碍,
TCP的keepalive不能保证持久连接。如果在连接中传送了3个请求,则服务器在第一个响应后将断开连接。您应该重试接下来的两个请求。
当您有多个连接时,负载平衡也很棘手。如果没有空闲连接,则可以使用繁忙的连接,也可以创建一个新的连接。
超时也很棘手。当一个请求超时时,您必须丢弃所有请求,因为它们必须按顺序返回。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)