3、 Queue存储。它是一个类似MSMQ的队列实现。一个使用Queue Storage经典的场景是,在一个Web应用程序中,用户通过表单递交给服务器数据,服务器收到数据后将进行处理,而这一处理将花费很多时间。这种情况下,服务器端通过Queue Storage可以把用户递交的信息存储在队列中,后台再运行一个程序从队列中取得数据进行信息的处理。一个消息的最大大小为8K。
使用示例:
在一个项目(为了叙述方便,后面称之为Client项目)的Main方法中加入如下代码,我们将用它来向Queue Storage中添加信息。
接着在另外一个项目(为了叙述方便,后面称之为Server项目)的Main方法中加入如下代码,我们将用它来从Queue Storage中读取信息和进行处理。
4、 SQL Azure存储
上面介绍了Windows Azure Storage的三种存储方式,Storage存储其实就是类似于本地文件存储,只是存储位置是远程的云服务器。下面简单介绍一下Azure提供的一种类似于SQL Server服务的基于SQL的存储方式:SQL Azure存储。
它是由微软SQL Server 2008为主,建构在Windows Azure云操作系统之上,运行云计算 (Cloud Computing)的关系数据库服务 (Database as a Service),是一种云存储(Cloud Storage)的实现,提供网络型的应用程序数据存储的服务。
(1)、连接工具
开发人员或管理人员可使用 SQL Server 2008 R2 版本的 SQL Server Management Studio 连接 SQL Azure Server,或是使用命令行工具 sqlcmd.exe 连到 SQL Azure Server。SQL Azure的连接字符串可以在SQL Azure的管理窗口 https://sql.azure.com 中得到。
(2)、SQLAzure的限制
SQL Azure 基于架构上的设计与天生的限制,SQL Azure Server的帐户与安全控制会有下列限制:
-
只有服务器级主帐户才具有变更密码的能力,
loginmanager
组群的成员帐户不具变更密码的权限,同时如果要访问master数据库,则该用户帐户必须要被对应到master数据库,同时服务器级主帐户是不可以变更或删除的,同时只要是被设为服务器级主帐户的用户,就算没有给予dbmanager
或loginmanager
,仍然可以创建数据库并管理用户。 - 只要是登录服务器,一律以master为默认数据库,US-English为默认的登录语系。
-
若要运行
CREATE/ALTER/DROP LOGIN
或CREATE/DROP DATABASE
,必须要先连至master数据库。 - 当要在 ADO.NET 运行前述指令时,不可以使用参数化命令,而且前述命令于每个SQL批量也只能有一个(且是唯一的一个)。
-
当要运行
CREATE USER
配合FOR/FROM LOGIN
选项时,它也必须是SQL批量中唯一的一个。 -
当要运行
ALTER USER
配合WITH LOGIN
选项时,它也必须是SQL批量中唯一的一个。 -
只有服务器级主帐户以及被赋与
dbmanager
角色的成员才有运行CREATE DATABASE
与DROP DATABASE
的权力。 -
只有服务器级主帐户以及被赋与
loginmanager
角色的成员才有运行CREATE LOGIN
、ALTER LOGIN
与DROP DATABASE
的权力。 - 若想访问master数据库,则该帐户必须要对应到master数据库。
(3)、性能曲线
在SQL Azure上添加、更新和删除数据的性能曲线。
在SQL Azure上查询数据的性能曲线。
在SQL Azure和Table Storage上,添加、更新和删除数据的性能比较。
在SQL Azure和Table Storage上,查询数据的性能比较。
结束语
通过对Storage和SQL Azure存储性能的比较,可以得知,整体上SQL Azure的存储性能要高于Storage。所以,在Windows Azure上搭建应用服务的时候,除了要参考采用这两种存储方式的价格差异。同时,更重要的是应该权衡什么数据存储在SQL Azure上,什么数据存储在Storage上,在整个项目预算的允许范围内,对应用服务的性能的影响。