求大神们指导,为什么openstack要用rabbitmq这类消息中间件来进行RPC这类的操作呢,直接rpc不行吗?

Xuanyuan92 发布于 2017/02/03 11:27
阅读 742
收藏 0

问题如上,求指导,谢谢!
新年快乐!

加载中
0
water6000
water6000

同关注!!!

0
Xuanyuan92
Xuanyuan92

有个大神的回复是:用mq更方便处理分布式和异步消息。然后举了个例子:举个例子 不一定恰当,但可以理解思路。比如rpc调用方可能需要考虑有那些节点,那个节点可以处理,调用哪个。而用mq,不管有多少节点,只需要把请求丢进队列,所有节点都认识mq,其中一个节点把消息拿走处理,然后把处理结果丢回队列就行了。

应该就是说MQ可以更灵活地进行消息的处理,特别是业务比较复杂的系统;可以独立于应用,不用关注相关应用的底层细节;可以使用灵活的路由策略进行消息的分发;有丰富的插件系统,例如management插件,可以进行监控和管理,还有一些其他的插件,可以更方便地实现某些功能。后面这段是我自己的理解,请大家批评指正,谢谢!

0
f
fooy5460

openstack也可以用zeromq直接发起RPC请求,不需要单独做服务器;

而且两种方式各有利弊。比如专职服务器也会面对CPU、内存、磁盘(如果有持久化)使用率高等问题; 相反,zeromq使用连接数非常大(为了解决这个问题,openstack中基于zeromq也采用了proxy/broker的中转模型)。

返回顶部
顶部