架構設計特點:
OpenStack架構設計優勢:
優點:
(1)模塊松耦合。與其他開源軟件相比,OpenStack模塊分明。添加獨立功能的組件非常簡單。有時候,不需要通讀整個OpenStack的代碼,只需要了解其接口規范及API使用,就可以輕松地添加一個新的模塊。
(2)組件配置較為靈活。OpenStack也需要不同的組件。但是OpenStack的組件安裝異常靈活。可以全部都裝在一台物理機上,也可以分散至多個物理機中,甚至可以把所有的結點都裝在虛擬機中。
(3)二次開發容易。OpenStack發布的OpenStack API是Rest-full API。其他所有組件也是采種這種統一的規范。因此,基於OpenStack做二次開發,較為簡單。而其他3個開源軟件則由於耦合性太強,導致添加功能較為困難。
openstack服務分析:
一、Openstack的核心服務組件-Restful
1、restful
(1)組件之間通過restful協議通信
(2)python中通過發布WSGI的方式提供restful接口
(3)python的WSGI中提供了過濾器,攔截器等組件能力,幫助我們進行執行相關的動作。
2、Restful的不足
(1)采用HTTP協議,傳遞的消息僅限於文本
(2)同步調用,服務器不返回就一直等待
(3)耦合度高,客戶端必須知道服務器端地址
二、openstack的核心組件-AMAQ(RabbitMQ)
- RabbitMQ是AMAQ的一種實現
- AMAQ提供了消息隊列能力,支持訂閱模式topic和隊列模式queue
- 他是一個異步的架構,消息的發送與接受是解耦的
- RabbitMQ服務中定義的主要消費者和生產者
- rpc.call方式遠程調用的流程
(1)客戶端通過主題發布者向主體交換器發送RPC消息。主題交換器根據消息的主題將消息保存在相應的隊列中。
(2)服務器端的主題消費者從隊列中接收並處理RPC消息
(3)服務器端的主體消費者處理完消息后,通過直接發布者將消息發送給客戶端
(4)客戶端通過直接消費者接受服務器返回的RPC結果
(2)服務器端的主題消費者從隊列中接收並處理RPC消息
(3)服務器端的主體消費者處理完消息后,通過直接發布者將消息發送給客戶端
(4)客戶端通過直接消費者接受服務器返回的RPC結果
Restful和AMAQ是Openstack組件間調用與信息交換的核心方式
(1)一個是同步(Restful)調用
(2)一個是異步調用(AMAQ)
(1)一個是同步(Restful)調用
(2)一個是異步調用(AMAQ)