美文网首页微服务
RPC与MQ的区别与联系

RPC与MQ的区别与联系

作者: 田涛347 | 来源:发表于2020-06-12 11:05 被阅读0次

RPC和MQ同样都是用于分布式系统的两个很重要的技术,都有服务提供者、消费者的概念,可在一定程度上对系统进行解耦。但两者之间还是有区别的。

一、RPC

RPC(Remote Procedure Call)远程过程调用,主要解决远程通信间的问题,不需要了解底层网络的通信机制。


RPC系统结构

RPC框架

知名度较高的有Thrift(FB的)、dubbo(阿里的)、HFS(阿里的)、Feign(Spring Cloud,伪RPC,基于Http协议)

RPC的一般需要经历4个步骤

1、建立通信
首先要解决通讯的问题:即A机器想要调用B机器,首先得建立起通信连接,主要是通过在客户端和服务器之间建立TCP连接。
2、服务寻址
要解决寻址的问题,A服务器上如何连接到B服务器(如主机或IP地址)以及特定的端口,方法的名称是什么。
3、网络传输
1)序列化
当A服务器上的应用发起一个RPC调用时,调用方法和参数数据都需要先进行序列化。
2)反序列化
当B服务器接收到A服务器的请求之后,又需要对接收到的参数等信息进行反序列化操作。
4、服务调用
B服务器进行本地调用(通过代理Proxy)之后得到了返回值,此时还需要再把返回值发送回A服务器,同样也需要经过序列化操作,然后再经过网络传输将二进制数据发送回A服务器。
通常,一次完整的PRC调用需要经历如上4个步骤。

二、MQ(消息队列)

消息队列(MQ)是一种能实现生产者到消费者单向通信的通信模型,一般来说是指实现这个模型的中间件。


消息队列结构

典型的MQ中间件

RabbitMQ、ActiveMQ、Kafka等
典型的特点:
1、解耦
2、可靠投递
3、广播
4、最终一致性
5、流量削峰
6、消息投递保证
7、异步通信(支持同步)
8、提高系统吞吐、健壮性

典型的使用场景:

秒杀业务中利用MQ来实现流量削峰,以及应用解耦使用。

三、RPC和MQ的区别和关联

1.在架构上,RPC和MQ的差异点是,Message有一个中间结点Message Queue,可以把消息存储。
2.同步调用:对于要立即等待返回处理结果的场景,RPC是首选。
3.MQ 的使用,一方面是基于性能的考虑,比如服务端不能快速的响应客户端(或客户端也不要求实时响应),需要在队列里缓存。另外一方面,它更侧重数据的传输,因此方式更加多样化,除了点对点外,还有订阅发布等功能。
4.而且随着业务增长,有的处理端处理量会成为瓶颈,会进行同步调用改造为异步调用,这个时候可以考虑使用MQ。

相关文章

  • RPC与MQ的区别与联系

    RPC和MQ同样都是用于分布式系统的两个很重要的技术,都有服务提供者、消费者的概念,可在一定程度上对系统进行解耦。...

  • 我说MQ可用于RPC,面试官让我回去等通知

    面试官问我mq可以做什么?我说RPC服务。面试官一脸疑问&&嫌弃,让我回去等通知。 MQ与RPC RPC(远程过程...

  • Http、RESTful、RPC、MQ、Socket 概念与区别

    1、关于HTTP HTTP,即超文本传输协议,是一个属于应用层的面向对象的协议。 HTTP的特点: 基于C/S模...

  • 什么是RPC?

    1. 基本的RPC模型 主要介绍RPC是什么,基本的RPC代码,RPC与REST的区别,gRPC的使用 1.1 基...

  • 一:弄清楚概念的东西

    一:首先弄清概念的东西,RPC与RMI的区别 (1)RPC:(Remote Procedure Call) 被设计...

  • 【rpc】RPC 与 HTTP 的区别

    RPC 与 HTTP 的区别 https://www.itzishu.com/archives/rpcdiffht...

  • php的rpc

    RPC与Socket有什么区别? 通过上面的简单阐述,好像RPC与Socket 好像啊。都是调用远程的方法,都是c...

  • http与rpc

    什么是RPC协议?RPC协议与HTTP协议的区别6,790次阅读什么是RPC协议? RPC是一种远程过程调用的协议...

  • RocketMQ的概念与术语

    RocketMQ 本文内容:描述RocketMQ的概念与术语,最下方解释各种MQ之间的区别与选型 RcoketMQ...

  • HDFS 块和 Input Splits 的区别与联系

    HDFS 块和 Input Splits 的区别与联系HDFS 块和 Input Splits 的区别与联系(源码...

网友评论

    本文标题:RPC与MQ的区别与联系

    本文链接:https://www.haomeiwen.com/subject/bfrgtktx.html