消息队列 RPC之间的区别与联系

消息队列 RPC之间的区别与联系

我了解一下protocol buffer ,ThriftRPC框架和 ActiveMQ,RabbitMQ消息代理框架, 有点弄不清它们的应用场景 和 它们之间的联系与区别。 望 大家 指点迷津! 谢谢!

总的来说,消息代理和RPC框架就像ReadFileEx和ReadFile的区别

就是个消息池,不固化消息形式,你用什么协议取,消息池就返回给你什么样的数据形式,这样不同系统间就可以无缝通信了

MQ 是生产者消费者模式。

RPC 是请求响应模式。

MQ 是面向数据的。

RPC 是面向动作的。

protocol buffer 只是一个序列化方式,并不是 RPC。

rpc让你远程调用象本地调用,一般是同步的,例如,你读一个文件,象调用本地的函数,就是时间久点。

消息代理框架一般是异步的,一个线程send,另外一个线程recv

pb只是协议包装,thrift才是真正的rpc框架

protool buffer 是一种序列化方式,google开源的gPRC则是一个基于Protocol Buffers序列化的RPC框架,Thrift也是个RPC框架 ,这两个都是跨平台RPC框架

RPC一般用于同步场景

ActiveMQ,RabbitMQ是流行的消息队列(消息中间件),消息队列一般用于异步场景

protocol buffer 是二进制序列化方式,类似json(文本),题主说的应该是grpc吧

主要的区别就是消息队列适用于异步场景,而rpc是远程同步调用

就像你去餐厅吃饭,

消息队列:不急不急,来了先放碗里,我和朋友聊着,有空在吃~

rpc:快点啊!我等了好久了- -

最大的区别是,rpc没有broker, 而消息队列是需要管理消息的存储的,rpc没有存储,只有通信。

不管是消息队列还是rpc调用都是 分布式下面的 通信方式。

消息队列最容易理解的方式就是生产者消费者模式,使两个应用解耦。mq等框架就是对这的具体实现。

rpc中主要有两点,一是消息的传输格式(文本或二进制),二是消息传输方式(http或tcp)。有的框架是对前者实现,如probuffer,有的是对后面实现,如netty,还有的就是一个整体实现,如thrift。

不管怎样,他们都是为了实现通信。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值