远程调用的几种常见方式

这里说的远程调用指的是进程间的交互,我们常用的前后端通过HTTP接口发起的网络请求也是属于远程调用,那么,除了HTTP外,还有哪些常见方式呢?

RPC

RPC是一种远程调用协议,最经典的框架就是dubbo,在老一些的分布式系统中dubbo还是很常用的,RPC最明显的优点就是使用简单,它屏蔽了底层通信细节,允许客户端直接调用服务器上的函数或服务,在形式上可以像调用本地函数或服务一样去调用远程的函数或服务,使用过dubbo的应该对此深有感触,这也是其区别于HTTP的重要之处。

HTTP

很多人说RESTful API是远程调用方式,在这里歪哥还是直接使用了HTTP的说法,更容易理解。前面提到了,区别于RPC,HTTP更注重的是数据协议,参数、返回值,双方把数据格式约定好了,HTTP就能玩得转了。

消息队列

很多人在用消息队列(MQ),但可能没把它跟远程调用联系在一块,其实消息队列是一种典型的异步远程调用方式。它通过发送和接收消息来实现系统之间的通信。不像HTTP有一个连接、传输、关闭的完整的一次调用流程,消息队列就是一个公用的大箱子,大家随时取放。消息队列的主要优点是解耦、可扩展性好、容错能力强,但相对于RPC和HTTP,实时性较差。

异步响应

这是目前比较新的的远程调用方式,典型代表就是WebFlux+Spring Data Reactive,可以处理一些请求频繁,要求及时响应的业务。WebFlux事件驱动框架支持响应式编程模型,可以实现非阻塞式的异步响应。可以想象一下设计模式中的观察者模式,以及Guava中的EventBus。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这孩子叫逆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值