Nginx重要概念之pipeline

什么是pipeline?

  pipeline是http1.1引入的新特性,流水线作业,是keepalive长连接的升华,可以实现一个连接做多次请求。

pipeline与keepalive的区别

  当客户端提交多个请求的时候,keepalive场景下,第二个请求必须等到第一个请求响应接收完全后才能发起,跟TCP的停止等待协议一样,得到两个相应时间至少为2RTT;pipeline场景下,客户端不必等第一个请求处理完就可以马上发起第二个请求,得到两个相应的时间可能能欧达到1RTT。

Nginx与pipeline

  Nginx支持pipeline,但是Nginx对pipeline的多个请求的处理不是并行的,是一个请求接一个请求的处理,只是在处理第一个请求的时候客户端可以发起第二个请求。

  Nginx在处理数据时,会将读取的数据放到一个buffer里面,如果Nginx处理完前一个请求后,发现buffer里还有数据,就会认为剩下的数据是下一个请求的开始,就接下来处理下一个请求,否则就设置keepalive。

以上总结参考链接https://mp.weixin.qq.com/s/bXtI45d7M-XjkJH3ARZiMQ

猜你喜欢

转载自www.cnblogs.com/smallzhen/p/12650531.html