系统结构
RPC | Message Queue | |
---|---|---|
调用方式 | Consumer <=> Provider | Sender <=> Queue <=> Receiver |
调用对象 | Consumer调用的Provider提供的服务。 | Sender发送消息给Queue;Receiver从Queue拿到消息来处理。 |
功能特点
在架构上,RPC和Message的差异点是,Message有一个中间结点Message Queue,可以把消息存储。
消息的特点
Message Queue把请求的压力保存一下,逐渐释放出来,让处理者按照自己的节奏来处理。
Message Queue引入一下新的结点,让系统的可靠性会受Message Queue结点的影响。
Message Queue是异步单向的消息。发送消息设计成是不需要等待消息处理的完成。
所以对于有同步返回需求,用Message Queue则变得麻烦了。PRC的特点
同步调用,对于要等待返回结果/处理结果的场景,RPC是可以非常自然直觉的使用方式。
RPC也可以是异步调用。
由于等待结果,Consumer(Client)会有线程消耗。
如果以异步RPC的方式使用,Consumer(Client)线程消耗可以去掉。但不能做到像消息一样暂存消息/请求,压力会直接传导到服务Provider。
应用
其实基于MQ和RPC的应用在之前介绍过,分别是:
ps:
暂且了解到这里,以后再补充。