同步指的是系统(请求处理方)收到请求调用方的一个请求(Request)后,在该请求没有处理完成时,就一直不返回响应(Response)结果,直到处理完成后才返回响应结果,如图1-7-3所示。
图1-7-3
与同步相比,异步指的是系统收到一个请求后,立即把请求接收成功返回给请求调用方,在请求处理完成后,再异步推送处理结果给调用方,或者请求调用方间隔一定时间之后再重新获取请求结果,如图1-7-4所示。
图1-7-4
同步转异步主要解决同步请求时的阻塞等待问题。一直处于阻塞等待的请求,往往会造成连接不能快速释放,从而导致在高并发处理时连接数不够用。通过队列异步接收请求后,请求处理方再进行分布式的并行处理,可以扩展处理能力,并且网络连接也可以快速释放。