通过以上可总结三种情况错误的情况如下:
(以2000并发为例)
----
1:ideltimeout不设置,只设置connectionTimeout==20s
----
一批接口中
第一个接口肯定不会出现,因为他都是新建的tcp连接。
----
第二个接口容易出现RST,因为第一个接口新建连接比较耗时,容易造成测到第二个接口的时候,一些连接已经超过了20s,被服务端主动关闭了。
----
耗时的接口上,容易出现RST
比如接口4,复用接口3的2000连接(我们以1~2000标记),说是并发执行,其实在服务端也是个队列,假设到复用1900以后的了连接了,1900以前已经耗时了20s, 这1900以后的连接其实已经被服务端主动关闭了。(有些连接在接口3中已经空闲了一段时间,到接口4都不用20s就被关闭了 )
----
耗时的接口的下一个接口,容易出现RST,原因耗时接口到下一个接口的时候,有些空闲的时间比较长
----
所以如果不设置ideltimeout,很容易造成累计效应,越到最后,可能出错的几率越高