当我们说远程调用时,我们指的是常用的前端和后端通过HTTP接口发起的网络请求也是远程调用。那么除了HTTP还有哪些常见的方法呢?
RPC
RPC是一种远程调用协议,Dubbo在较旧的分布式系统中仍然常用。 RPC最明显的好处是保护了底层的通信细节并且方便客户使用。最终允许你直接调用服务器上的函数和服务,就像调用本地函数和服务一样。这也是与dubbo的一个重要区别。和HTTP。
HTTP
很多人说RESTful API是远程调用方式,但这里我直接使用HTTP。前面提到,与RPC 不同,HTTP 更注重数据协议、参数和返回值。一旦双方同意数据格式,HTTP就可以成功使用。
消息队列
许多人使用消息队列(MQ),但他们可能不会将其与远程调用关联起来。事实上,消息队列是经典的异步远程调用方式。通过发送和接收消息来实现系统之间的通信。与HTTP 具有连接、发送和关闭的完整单次调用过程不同,消息队列是任何人都可以随时访问的大型公共盒子。消息队列的主要优点是隔离性、扩展性好、容错能力强,但实时性相对RPC、HTTP来说较差。
异步响应
这是一种比较新的远程调用方式,最常见的是WebFlux+Spring Data Reactive,可以适应一些需要频繁请求、及时响应的业务。 WebFlux事件驱动框架支持反应式编程模型,可以实现非阻塞异步响应。考虑设计模式中的观察者模式和Guava 的EventBus。
版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。