服务的协作:服务间的消息传递——《微服务设计》读书笔记
在 微服务集成——《微服务设计》读书笔记 文章中,我们说过服务间的消息传递有几种方式,一种是请求/响应技术,另一种是基于事件的机制。 RPC(远程过程调用) RPC是Remote Procedure Call的简称。 这是请求/响应技术的一种,它使用本地调用的方式和远程进行交互,如SOAP、Thrift等,比如我们常使用的WebService和Java RMI,就是这种类型。它先在本地生成桩代码,然后通过桩代码进行远程调用。 RPC会带来一些问题,如Java RMI,其耦合性较紧,同时RPC会对调用进行大量的封装和解封装,同时修改接口时会造成服务的提供方和调用方都要修改。 REST REST是受Web启发而产生的一种架构风格,REST风格包含的内容很多,Richardson的成熟度模型(http://martinfowler.com/articles/richardsonMaturityModel.html),其中有对REST不同风格的比较。 REST本身并没有提到底层应该使用什么协议,最常用的是HTTP,HTTP本身提供了很多功能,这些功能对于实现REST风格非常有用,比如HTTP的动词(GET、POST、PUT等)就能很好地和资源一起使用。 在使用REST时,传输的数据格式是XML还是JSON,这个没有一个定论。 基于HTTP的REST也有缺点:1.它无法帮你生成桩代码,2