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来描述:

(1)Windows Azure Blob

在Windows Azure中使用存储服务最简单的方法是使用Windows Azure Blob。Blob存储二进制数据,如图像,XML文档,压缩文件和其它在容器内任意排列的字节。

Blob存储数据是通过一个简单的层级关系来实现的,每个账户Account下有一个容器,这个容器就是用户定义的一套只有一个属性的Blobs(Blob集合),容器不直接存储数据,每个Blobs包含了多个Blob。Windows Azure Blob存储数据和层级关系如图2所示:

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也可以说明这一点。

(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的应用场景。

在如图4所示的应用场景中,用户通过Web Role实例访问Table里的数据,Web Role和Worker Role之间的消息传递是通过Queue来实现的,而Worker Role则访问了Blob里的大数据。

在图5所示的场景中,Web Role和Worker Role之间的消息传递是通过Queue来实现的,而Worker Role则访问了Blob里的大数据。

在图6所示的应用场景中,用户通过Web Role实例访问Table里的数据。

下面我们给出两个使用Blob和Table访问到的数据界面,如图7~8所示:

在图7中,我们可以浏览到Blobs里存储的二进制数据,默认状态下,这些数据是只读的,可以在上面的搜索条里对数据进行查找,也可以对文件下载,这是不是类似于FTP呢?

在图8中,使用Table存储了数据,每一行都标示了一个实体,每一列都标示了实体的一个属性。从存储看上去还是和SQL Server的数据表很类似的。同样,可以对数据进行过滤,而且还可以对数据进行刷新。

总结

Windows Azure Platform支持三种可扩展的持久化存储:非结构化数据(Blob)、结构化数据(Table)、应用程序和服务之间,或应用程序与服务之间的消息(Queue)。再结合Visual Studio的开发环境和应用场景,加深了大家对Windows Azure 存储服务的理解。

Azure Storage架构介绍的更多相关文章

  1. Microsoft Azure Storage架构分析

    Microsoft云存储服务分为两个部分,SQL Azure和Azure Storage.云存储系统的可扩展性和功能不可兼得,必须牺牲一定的关系数据库功能换取可扩展性.Microsoft实现云存储的思 ...

  2. Windows Azure Storage (20) 使用Azure File实现共享文件夹

    <Windows Azure Platform 系列文章目录> Update 2016-4-14.在Azure VM配置FTP和IIS,请参考: http://blogs.iis.net/ ...

  3. Windows Azure Storage (22) Azure Storage如何支持多级目录

    <Windows Azure Platform 系列文章目录> 熟悉Azure平台的读者都知道,Azure Blob有三层架构.如下图:(注意blob.core.chinacloudapi ...

  4. Windows Azure Cloud Service (12) PaaS之Web Role, Worker Role, Azure Storage Queue(下)

    <Windows Azure Platform 系列文章目录> 本章DEMO部分源代码,请在这里下载. 在上一章中,笔者介绍了我们可以使用Azure PaaS的Web Role和Worke ...

  5. Azure Storage 系列(四)在.Net 上使用Table Storage

    一,引言 今天我们就不多说废话了,直接进入正题,Azure Table Storage.开始内容之前,我们先介绍一下Azure Table Storage. 1,什么是Azure Table Stor ...

  6. Azure Queue Storage 基本用法 -- Azure Storage 之 Queue

    Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure File Storage 基 ...

  7. Azure File Storage 基本用法 -- Azure Storage 之 File

    Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure Blob Storage 基 ...

  8. Azure Blob Storage 基本用法 -- Azure Storage 之 Blob

    Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure Table storage ...

  9. Azure Table storage 基本用法 -- Azure Storage 之 Table

    Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table,其中的 Table 就是本文的主角 Azure Tabl ...

随机推荐

  1. Effective C++ 随笔(4)

    条款21:必须返回对象时,别妄想返回其reference 例子: Raional类可以执行有理数的一些运算,并且使用heap内存申请 并且其operator*函数为 const Rational&am ...

  2. FoonSunCMS-Word图片上传功能-Xproer.WordPaster

    1.1. 与FoosunCMS 3.1.0930整合 基于WordPaster-asp-CKEditor4.x示例 下载地址:http://www.ncmem.com/download/WordPas ...

  3. DS8800后端的光纤通道交换式互连方式

    DS8800 使用SAS 硬盘.使用了FC 到SAS 转换,光纤通道交换技术被用于DS8800 后端. FC 技术是普遍用于在一个光纤通道仲裁环路(Fibre Channel Arbitrated L ...

  4. Codeforces Round #540 (Div. 3)--1118D2 - Coffee and Coursework (Hard Version)

    https://codeforces.com/contest/1118/problem/D2 和easy version的主要区别是,数据增加了. easy version采用的是线性查找,效率低 在 ...

  5. 一天学习两个设计模式之Facade模式(外观模式,结构型模式)

    程序这东西随着时间推移,程序会越来越大,程序中的类越来越多,而且他们之间相互关联,这会导致程序结构变得越来越复杂.因此我们在使用他们时候,必须要弄清楚他们之间的关系才能使用他们. 特别是在调用大型程序 ...

  6. codeforce 489d bfs分层处理

    这个题确实没想到用bfs进行分层处理,后来看到了大佬的题解之后才想到了这一点 bfs dfs早就学了,可是还是不大会应用到这上面 可以分为三层,起始点,中间点,尾点,需要的数据是中间点到尾点的访问次数 ...

  7. js五道经典练习题--第二道仿qq聊天框

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  8. Windwos下Tomcat的安装与配置

    一.准备工作 1. JDK环境,可参考https://www.cnblogs.com/eagle6688/p/7873477.html 2. Eclipse 3. Tomcat安装包和源码包 二.下载 ...

  9. 轻量级Config文件AppSettings节点编辑帮助类

    using System.Configuration; using System.Windows.Forms; namespace Allyn.Common { public class XmlHep ...

  10. ElectronNetTest

    系统环境:Ubuntu 18.04.2 Desktop 软件环境:asp.net core 2.2,Node.js(version>8.6) Github上有人说不支持 asp.net core ...