Azure Storage架構介紹

jopen 10年前發布 | 26K 次閱讀 架構 分布式/云計算/大數據

Windows Azure Storage由三個重要部分或者說三種存儲數據服務組成,它們是:Windows Azure Blob、Windows Azure Table和Windows Azure Queue。在本文中將給大家介紹Windows Azure Storage中的這三種存儲服務、Visual Studio環境下配置和使用開發存儲和Windows Azure Storage應用場景。

Windows Azure 存儲服務的構成

Windows Azure Storage由三個重要部分構成:

Windows Azure Blob:存儲大型數據。

Windows Azure Table:存儲表數據,類似關系數據庫中的數據表,但有所不同,將在后文中介紹。

Windows Azure Queue:為異步工作提供分派消息服務,有點類似Windows系統的消息隊列。

它們的組成也可以使用圖1來描述:

Azure Storage架構介紹

(1)Windows Azure Blob

在Windows Azure中使用存儲服務最簡單的方法是使用Windows Azure Blob。Blob存儲二進制數據,如圖像,XML文檔,壓縮文件和其它在容器內任意排列的字節。

Blob存儲數據是通過一個簡單的層級關系來實現的,每個賬戶Account下有一個容器,這個 容器就是用戶定義的一套只有一個屬性的Blobs(Blob集合),容器不直接存儲數據,每個Blobs包含了多個Blob。Windows Azure Blob存儲數據和層級關系如圖2所示:

Azure Storage架構介紹

Blob存儲數據的地址是:

http://.blob.core.windows.net/

可以通過REST的方式來操作,也就是說可以通過如圖1所示中的訪問方 式:Http/Https。在上傳大文件的時候,我們可以先把大文件分割成多個Blob來上傳,這樣就解決了大文件上傳的問題。Block對下載流程是透 明的,下載者根本不知道也不用去知道它正在下載的文件被分成了多少個block。

注意在PUT Blob操作中你可以上傳最大64MB的數據創建一個Blob,通過上傳連續塊可以創建大于64MB的Blob,塊最大只能是4MB。

(2)Windows Azure Table

Blobs只能針對大容量二級制數據存儲,它真是太“不結構化”了。為了保存和使用云應用程序中 具有緊密的數據,如在云存儲服務中存儲一個對象,這個對象是有些自己的屬性,其實這樣的對象我們可以看成是示例或者實體,于是Windows Azure Table就派上用場了。Windows Azure Table可以直接將實體類、實體對象存入表格結構當中。

Windows Azure Table和SQL Server/SQL Azure的區別在于,Windows Azure Table是一種服務,旨在存儲具有實體關系的數據,而不是關系數據庫。Windows Azure Table 提供輕便快捷低成本的大規模存儲數據,包含實體和屬性。它不是關系數據庫,所以不能提供類似SQL中joins的方法,也不能管理 foreign keys。事實上,一個單一的Windows Azure Table可以存儲數十億個實體,一個Windows Azure Table的大小能達到萬億字節,這是一個相當大的存儲量。通過示例圖3也可以說明這一點。

Azure Storage架構介紹

(3)Windows Azure Queue

Windows Azure Blob和Windows Azure Table都是用來存儲和訪問數據的。Windows Azure 提供了第三種存儲服務——Windows Azure Queue,為異步工作提供分派消息服務,最常見的一個應用就是作為Worker Role實例和Web Role實例之間通訊的消息隊列。有關Windows Azure Queue使用的示例我們將在應用場景來做描述。

不管在Windows Azure Storage中是使用Blob、Queue還是Table來存儲數據,為了保證數據的安全,微軟云計算服務平臺至少會在同一數據中心三個獨立的容器中存 儲Blob,Table和Queue,Windows Azure基于地理位置的功能允許你將數據復制到多個微軟數據中心,增強災難恢復能力,提高特定地區的性能。 

Windows Azure Storage應用場景

在Windows Azure Storage應用場景里,我們更多是通過一些示例圖或者實際應用的圖來給大家介紹一些Windows Azure Storage的應用場景。

Azure Storage架構介紹

在如圖4所示的應用場景中,用戶通過Web Role實例訪問Table里的數據,Web Role和Worker Role之間的消息傳遞是通過Queue來實現的,而Worker Role則訪問了Blob里的大數據。

Azure Storage架構介紹

在圖5所示的場景中,Web Role和Worker Role之間的消息傳遞是通過Queue來實現的,而Worker Role則訪問了Blob里的大數據。

Azure Storage架構介紹

在圖6所示的應用場景中,用戶通過Web Role實例訪問Table里的數據。

下面我們給出兩個使用Blob和Table訪問到的數據界面,如圖7~8所示:

Azure Storage架構介紹

在圖7中,我們可以瀏覽到Blobs里存儲的二進制數據,默認狀態下,這些數據是只讀的,可以在上面的搜索條里對數據進行查找,也可以對文件下載,這是不是類似于FTP呢?

Azure Storage架構介紹

在圖8中,使用Table存儲了數據,每一行都標示了一個實體,每一列都標示了實體的一個屬性。從存儲看上去還是和SQL Server的數據表很類似的。同樣,可以對數據進行過濾,而且還可以對數據進行刷新。

總結

Windows Azure Platform支持三種可擴展的持久化存儲:非結構化數據(Blob)、結構化數據(Table)、應用程序和服務之間,或應用程序與服務之間的消息 (Queue)。再結合Visual Studio的開發環境和應用場景,加深了大家對Windows Azure 存儲服務的理解。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!