RPC与ServiceBus样式SOA

Alw*_*wyn 4 architecture wcf rpc nservicebus servicebus

这些架构的优点和缺点是什么?

  1. 通过RPC我的意思是远程过程调用服务,如WCF,WebServices等.

  2. 然后在另一方面,有更多面向消息的框架,如MSMQ,NServiceBus,ServiceStack等.

  3. 然后是混合方法,例如WebAPI,它是某种远程活动记录模式(开箱即用它只支持非常有限数量的动词,如"Get","Put","Post"等).

无视,它是如何实际实现的(也就是说.我并不真正关心耐久性,事务等等,因为无论抽象如何都可以实现),这些抽象的优点和缺点是什么?

同样,请不要提供低级别的实施细节,我只想在声音架构,最佳模式和实践方面,甚至是最适合采用每种方式和原因的情况方面做出改变.

myt*_*thz 7

RPC的唯一好处是它看起来很熟悉并且给开发人员一种假设,即服务调用看起来和行为就像普通的方法调用一样.

否则,RPC方法签名紧密耦合,脆弱且易碎,并将服务合同与其单一服务器实现联系起来.以下是比较在基于消息的服务中重写的相同WCF和Web API RPC服务的早期答案.

对于背景阅读我所描述的RPC之间的差异VS基于消息的服务相关的WCF VS ServiceStack面试以及什么是基于消息的服务是他们的许多优点.