rpc和消息队列区别

RPC 和消息队列都是分布式微服务系统中重要的组件之一,下面我们来简单对比一下两者:

  • 从用途来看:RPC 主要用来解决两个服务的远程通信问题,不需要了解底层网络的通信机制。通过 RPC可以帮助我们调用远程计算机上某个服务的方法,这个过程就像调用本地方法一样简单。消息队列主要用来降低系统耦合性、实现任务异步、有效地进行流量削峰。
  • 从通信方式来看:RPC 是双向直接网络通讯,消息队列是单向引入中间载体的网络通讯。
  • 从架构上来看:消息队列需要把消息存储起来,RPC则没有这个要求,因为前面也说了 RPC 是双向直接网络通讯。
  • 从请求处理的时效性来看:通过 RPC发出的调用一般会立即被处理,存放在消息队列中的消息并不一定会立即被处理。

RPC 和消息队列本质上是网络通讯的两种不同的实现机制,两者的用途不同,万不可将两者混为一谈。

相关推荐
LUCIAZZZ22 分钟前
简单说一下什么是RPC
java·网络·网络协议·计算机网络·spring cloud·rpc
ezreal_pan29 分钟前
kafka消费能力压测:使用官方工具
分布式·kafka
宽带你的世界30 分钟前
TiDB 是一个分布式 NewSQL 数据库
数据库·分布式·tidb
xiao-xiang41 分钟前
kafka-集群缩容
分布式·kafka
一勺菠萝丶42 分钟前
计算机专业知识【深入理解子网中的特殊地址:为何 192.168.0.1 和 192.168.0.255 不能随意分配】
网络·智能路由器
比花花解语44 分钟前
Kafka在Windows系统使用delete命令删除Topic时出现的问题
windows·分布式·kafka
解决方案工程师1 小时前
【Kafka】Kafka高性能解读
分布式·kafka
yellowatumn1 小时前
RocketMq\Kafka如何保障消息不丢失?
分布式·kafka·rocketmq
s_fox_1 小时前
Nginx Embedded Variables 嵌入式变量解析(4)
java·网络·nginx
python资深爱好者1 小时前
什么容错性以及Spark Streaming如何保证容错性
大数据·分布式·spark