您的位置:首页 > 其它

系统通讯之RPC VS 消息队列

2016-07-09 00:42 239 查看
文前声明:本人只是知识的搬运工,文中许多知识和观点大多数都是来自于网络或书本,因为没有记录的习惯学习研究完,便忘记名称了,如若还记得,在文后自会添加备注。

个人观点,对于这两种通讯方式我是支持消息队列的!

原由且听我分析:

通讯方式
RPC
消息队列
优点
舒适感非常好,直接远程调用,无需关注通讯协议等等细节
(除了这个,我还真不知道RPC还有什么优点)
1、解耦
2、冗余
3、可扩展
4、可恢复
5、交易缓冲
6、消息投递保证
7、异步通信(支持同步)
8、提高系统吞吐、健壮性
缺点
1、对开发人员素质要求高
2、同步调用(当然是可以做到异步调用的,但大多应用都是同步的),
会造成延迟问题
3、对于分布式系统,难实现分布式事务
4、耦合度高
5、扩展难度大
6、排查业务问题难度高
1、安全控制复杂
2、稳定性要求非常高
实在搞不明白,现在炒的很火的微服务对RPC技术情有独钟,难道仅仅是因为开发舒适感爽么?对于分布式系统,在我看来就更不能采用RPC技术了,人云亦云:“远程调用相当于本地调用”,稍微想想就不应该这么认为了,这两种方式是有本质的区别的。这话是用来夸大RPC的调用性能有多么好的,可惜的是再怎么好,也是远程调用,既是远程调用就避不开网络延迟的问题,消息队列不是也存在这样的问题么?试想:一个服务涉及到4个调用A、B、C、D,对于RPC应用来说,其中有一环处理出问题,整个业务链路都得必须重新走一遍,但如果用消息队列,就不一样了,那一环出问题,就重做那一环就好了,不展开说明了,上述表格已经清晰明了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: