服务接口异步较同步的优势

本文探讨了在服务接口调用中,异步调用相对于同步调用的优势。当B服务出现超时时,同步调用会导致A服务处理队列阻塞,而异步调用能避免这种情况,且在异常情况下性能更优。异步调用的优势建立在队列管理和多线程基础之上。
摘要由CSDN通过智能技术生成

        考虑如下情况:A服务调用B服务的RPC接口。需要等待B服务的接口返回后,才能继续执行后面的操作。即或者B服务的接口正常返回,或者B服务的接口超时或异常返回。一定要等到一个确定的结果后,A服务的逻辑才能继续往下走。


        这种情况下,使用同步调用和异步调用,似乎没有太大的区别。因为无论A同步调用还是异步调用B,都需要等待B的执行结果返回。对于调用A服务,而等待A服务结果的客户端,他都需要等待大致相同的时间。


       当B服务出现较多的超时时,A因为同步调用,而会出现处理队列的阻塞,整个服务的平均处理时间会加长。但换成异步调用,整个A服务的平均回包时间还是会加长,因为必须将对B调用的超时时间均摊到A的完整响应时间内。


       如果有以下模型:

                                    1  B(1)

            3 2 1   A  =>    

                                    2 B(2)


       A端有一个处理队列,B端有两个处理队列。此时来三个请求:1,2,3。如果请求1调B时,B(1)正常处理,但未处理完。此时请求2被分到B(2),出了异常不返回了。


       此时如果是同步调用,则A的第3请求不能被处理,只能在2后面等。如果2超时时间为10t,总的处理时间是10t+t

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值