WEB开发网
开发学院服务器云计算 Windows Azure Platform (七) Windows Azure Stor... 阅读

Windows Azure Platform (七) Windows Azure Storage Service存储服务

 2012-03-22 12:10:23 来源:WEB开发网   
核心提示:Windows Azure提供了三种不同类型的存储服务(这里的存储是非关系型数据,比如图片、文档等文件),Windows Azure Platform (七) Windows Azure Storage Service存储服务,用来提供给Windows Azure上运行的应用程序存储数据使用,依据不同的存储格式会有不同

Windows Azure提供了三种不同类型的存储服务(这里的存储是非关系型数据,比如图片、文档等文件),用来提供给Windows Azure上运行的应用程序存储数据使用。依据不同的存储格式会有不同的限制,因为这些存储服务都是以分散式巨量存储(Distributed Mass Storage)为核心概念所设计出来的,为了要达成快速在分散式存储空间中存储与管理数据(还包含高可用度的赘余存储管理),微软有在数据的存储上做一些限制。

微软还提供了REST API来方便用户操作Storage Service。

1.BLOB

BLOB(大型二进制对象)数据是用来存储文件、图片、文档等二进制格式的文件。

BLOB分为2种:

  -Block BLOB(区块型BLOB存储),这类的存储以4M为一个区块单位,单一文件最大可以存储200GB,且区块不会连续存储,可能会在不同的存储服务器分块存放。为了适应文件的上传和下载而专门进行了优化。当应用程序要求时,会一招文件的KEY以及区块存储区提供数据。

  -Page BLOB,是优化的随机访问。它会在存储区中划分一个连续的区域供应用程序存放数据,它本身可以视为一个大型的VHD(虚拟机软盘)。如果我们拿我们的应用程序迁移到Windows Azure平台上,对于文件的读写操作可能需要进行一些修改,但是通过Page Blob就可以方便我们迁移:微软特别在Page BLOB上提供了一组将Page BLOB虚拟成软盘的功能,称为Windows Azure Drive(研发代号为XDrive),它能够支持NTFS API,也就是说应用程序可以利用现有的文件管理API(包含System.IO的类型)来访问Windows Azure Drive中的文件夹与文件数据,并且这些数据会保存在Windows Azure数据中心内。

BLOB服务由BLOB本身以及其收纳容器(Container)构成,容器可视为一般本机上的文件夹。

你可以通过REST API来访问,如下:

http://accountName.blob.core.windows.net/<containerName>/<blobName>

accountName表示哪个Azure帐号(Account)下的资源。

blob.core.windows.net表示我访问的是blob的资源。

containerName表示容器的名字,可以认为是访问某一文件夹下的资源

blobName表示我要访问的资源的名字。

注意:ContainerName的命名规则

1.必须以英文或数字开头,且名称内只能有英文、数字及dash(-)

2.不能以dash(-)开头或结尾,dash(-)不能连续出现

3.所有英文的字符都必须是小写

4.长度为3-63之间

Blob的命名规则:

1.除了URL的保留字符以外,其他的字符组合都可以使用

2.长度为1-1024个字符

3.尽量避免以dot(.)或者是forward slash(/)结尾。否则会造成Blob Service误判。

 2.Table

这里的Azure Table是非关系型数据库的表,不能与SQL Server中的Table混淆。

Azure Table中表最大容量是100T,每个Azure Table 都必须有Partition Key和Row Key。

Partition Key的值可以设置记录的物理位置。在Azure Table中的2条数据,如果Partition Key值相同,则表示这2条数据存储的物理位置是相同的;如果Partition Kay不同,则表示这2条数据可能存储在同一台物理介质上,或者不同的2台物理介质之上。

Row Key表示一行数据的唯一值。使用PartitionKey和RowKey可以定位一个唯一的实体。

Azure Table也提供REST API来访问,如下:

http://accountName.table.core.windows.net/<TableName>

3.Queue

Queue(队列)是一种先到先服务(First-Come, First-Serve),或称为FIFO(先入先出)的存储服务,它可以允许应用程序将消息存储到队列中排队,然后由负责处理的应用程序(通常是 Worker)由队列提取消息并处理以后,将消息由队列中移除。消息可以是字符串或是最长8KB的二进制数据,队列经常会作为跨运行个体通信以及工作切割通知的消息传递之用。

http://<account>.queue.core.windows.net/<QueueName>

Tags:Windows Azure Platform

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接