SOA中service常见的调用方式

          常见的方法调用都是同步调用,也是被大多数编程语言所支持的,是一种阻塞式的调用方式,主调用方代码一直阻塞直到被调用方返回为止。

  面对一些需要比较长的时间才能有响应的应用场景,那么就需要用到异步调用方式,这些方式在SOA结构下不同service之间调用中经常出现。

      常见的异步调用方式有:

           1、异步单调(Async  Oneway)

            2、延迟响应(Deferred  Response)

           3、请求回调(Call back )

  异步单调: 这是最简单的异步调用方式。在这种调用方式当中,主调方发出请求之后就不再关心被调方的情况,包括是否执行成功,反回值等都不关心,类似于java语言当中创建线程,并start。异步单向调用可以用在诸如事件通知的场景下,类似于古代太监到一个官员前宣读圣旨,某某官员你升官了,读完后黄马褂金子和其它奖赏你可以去领,领不领太监就不管了,读完后只管去吃喝。领奖赏这件事自然有相应的机制来保证。

                       正经例子:事件通知场景,类似于短信的发送。短信发出后,发送方不管接收方是否接到消息,继续执行下面的任务。可靠性一般由系统保证。比如接收方接收时出错,有重发机制。重发之后接收方依然出错,就生成一个失败事件,放入数据库里由系统管理员处理,或者在某种情况下自动处置,比如发送者发送失败消息等,这实质上是服务质量保障的内容。

延迟响应主调方发出请求之后,在请求处理完成之前就很快得到一个票据(Ticket),之后不必等待请求处理完成,继续执行其他任务在需要的时候,主调方使用得到的票据检索返回结果。延迟响应需要大致估计一下请求处理完所需要的时间。

 

请求回调: 与延迟响应类似,主调方也能得到被调用方的响应,但是不同是的这个响应是由服务端通过回调方法来触发的,而不像延迟响应方式由主调方来主动检索。这种调用方式的原理与许多编程语言中的回调机制类似。经如ajax里的回调,请求发到服务器,响应后会调用回调方法将得到的数据在前端展示出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值