2010-12-28 17:21:48 来源:infoq
首先要了解一些术语。术语Windows Azure Platform涵盖了微软云计算技术的所有方面。在Windows Azure Platform里,有3个主要技术。虚拟机组件称之为Windows Azure。对于计算而言,它支持Web Roles(用于托管Web站点)和Worker Role(用于后端处理)。SQL Azure基于SQL Server,具有很多相同的特性。最后是Windows Azure Platform AppFabric(不要和Windows Server AppFabric混起来)。Azure AppFabric是一个消息总线,目标是简化身份验证和消息传递,尤其在跨防火墙的时候使其更容易。
Azure Platform提供了太多的存储选项,让使用选择可能很困难。在Windows Azure的核心中是Blob存储。有两种类型的Blob存储,block(块)blob和page(页)blob。Block blob能存储最高200GB的数据,并针对流处理进行优化。而page blob能支持最高1TB的数据,主要用于随机访问。除了作为很多其他特性的基础外,blob存储还用于存储类似图片和视频这样的资源,用户能够通过REST风格的HTTP请求直接下载这些资源。
运行于page blob之上的是Windows Azure XDrive。XDrive能像一块NTFS格式的硬盘那样被挂接,让其能用普通的文件I/O API来访问。不过由于它也是blob,所以能作为一个原子单元进行复制。
如果你打算存储更加结构化的数据,你有一堆选项可用。对于存储大量的非关系型数据,你最好的选择就是当前的表服务(Table Service)。然而在一个Azure Table中的实体只能有1MB的大小,对于Table的总体大小没有一个明确的限制,它应该可以增至TB级别的容量。尽管Table Service可以支持大容量的数据,但由于只支持少量的数据类型,所以实际上还是有比较严格的限制,这就要求开发人员从一开始就需要考虑如何处理分区问题。
如果你想使用诸如联接(Join)这样的关系概念,那么SQL Azure是比较好的选择。SQL Azure支持大部分在现代数据库中所具备的特性,包括标准的ODBC和ADO.NET客户端API。然而,它在大数据库方面有着严格的大小限制,只能存储10GB的容量。由于跨数据库查询不被支持,所以跨多个数据库的分区是个棘手的问题,任何union 或join操作都需要在内存中完成。
最后,还有消息存储的选项。消息存储用于短期队列和存储-转发类型的架构当中。Azure的QueueService支持大小最多为8K基于XML的消息。如果你需要发送大数据的话,应该存储在别处并通过URI或在消息中的主键来引用。队列消息在接收后就被“隐藏”。应用程序倾向于用及时删除的方式来处理已被接收的消息;否则它最终会再次出现,并再次发送。从设计的角度看,这也意味着消息处理的次数会幂等增加。目前,在队列中的消息数目并没有严格的限制。
Azure AppFabric也提供了消息队列,虽然它们称之为(AppFabric服务总线消息缓存)AppFabric Service Bus Message Buffer。消息缓存默认只支持10条消息,不过可配置为最高50条。缓存中消息保存在内存中,因此在服务器宕机的时候不能恢复。因而,在不可靠或会离线较长时间的接收端,应该尽量少用这种存储方式。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。