为什么客户端这边瞬间发起多个请求,响应会丝毫不差的对应到多个请求上,不会发生错位呢?主要还是需要客户端来负责,指望服务端是不现实的。当然如果客户端和服务端都是自己的,那么就更灵活了。
rocketMQ是netty,用requestId,一个channel。
redisson也是netty,24个channel,模拟socket阻塞式请求,因为redis是单线程?,可以保证请求和响应对应。
tomcat类似netty的多路复用,那么请求和响应的对应只能由客户端的阻塞式socket来保证,一个tcp连接同一时间只能阻塞式的进行一个请求和响应。当前长连接不够了,就要建立新的,也是请求时间偶尔升高150ms左右的原因。