OpenStack设计与实现(四)消息总线(AMQP)

本文深入探讨OpenStack如何采用消息总线进行内部服务通信,重点讲解了AMQP协议的工作原理,包括消息产生、交换、缓存等步骤,并阐述了基于AMQP的RPC实现过程。
摘要由CSDN通过智能技术生成

在西方有一句谚语,叫做“Don’t Reinvent the Wheel!”。直译过来就是不要在重新发明轮子了。也就是说我们应该避免做一些重复性的工作,如果一个东西别人已经做过了,那么我们拿来直接用就行了,没有必要重新制作,这一点在软件开发里尤为突出。所以在OpenStack的开发中也借鉴了这一思想,OpenStack利用了大量的现有库,这加快了OpenStack的开发,使得开发人员可以集中精力研究难点。下面我们就来一起讨论一下OpenStack的通用技术。

一、消息总线

OpenStack的设计原则:项目之间通过RESTful API进行通信;项目内部通过,不同服务进程之间通过消息总线进行通讯。这种设计思想保证了各个项目对外可以被不同类型的客户端接受,同时也保证了内部项目通信接口的可扩展性和可靠性,以支持大规模的部署。

软件的开发经历了三个阶段,从最初的面向过程到面向对象,然后再到面向服务。在面向服务的软件开发中,我们需要考虑的就是如何保持各个服务之间的通信。这里OpenStack借鉴了计算机硬件总线的思想,引入了消息总线。一些服务向总线上发送消息,另一些服务从总线上获取获取消息。

OpenStack利用开源库实现了以下两种类型的用于在内部服务进行之间的通讯。

(1)事件通知

某个服务进程可以把事件通知发送到消息总线上,该消息总线上所有对此类事件感兴趣的服务进程,都可以获得此事件通知并进行进一步的处理,但是处理的结果不会返回给事件发送者。

(2)远程过程调用(RPC)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值