写点什么

Azure 的储存选项

  • 2010-01-11
  • 本文字数:1263 字

    阅读完需:约 4 分钟

首先要了解一些术语。术语 ** 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 条。缓存中消息保存在内存中,因此在服务器宕机的时候不能恢复。因而,在不可靠或会离线较长时间的接收端,应该尽量少用这种存储方式。

查看英文原文: Azure Storage Options

2010-01-11 19:061647
用户头像

发布了 254 篇内容, 共 56.7 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

《零基础学 Java》 FAQ 之 4-关于补码,多说两句

臧萌

Java 补码

权威与边界

伯薇

权威 边界 BART 工作方式

面向对象是什么

落英亭郎

面向对象

Java内存模型和volatile、final等关键字

麻瓜镇

Java 多线程

程序员的晚餐 | 5月9日 炖蹄髈

清远

程序员

模块化设计思想产品设计应用

燕陈华

产品设计 模块化流程 流程图

软件产品信息安全 - 数据分类

Interstate5

软件开发 信息安全 数据分类

产品周刊 | 第 14 期(20200510)

八味阁

产品 产品经理 产品设计

小棉袄,最终却没有变成你的防弹衣

小天同学

个人成长 成长 感悟 母亲节 感恩

Spring整合MyBatis详细分析

Java收录阁

mybatis

软件产品开发流程

Interstate5

软件开发 软件开发流程

人人都应该懂的加密算法 - 公钥加密

麦叔

对称加密 加密解密 信息安全 公钥加密

给在线教学泼点冷水

启润

在线教育 基础教育

HTTP 升级 HTTPS 全过程记录

猴哥一一 cium

https 证书

程序员必需清楚的进程和线程

小趴菜~

线程 操作系统 进程

高仿瑞幸小程序 05 更正轮播组件的高度计算

曾伟@喵先森

小程序 微信小程序 大前端

《零基础学Java》 FAQ 之 零-这门课适合我吗?

臧萌

Java 编程语言

用 Electron 打包语雀

封不羁

Java Electron

《如何阅读一本书》读书心得

兆熊

读书笔记

大话区块链和比特币的技术原理

麦叔

比特币 区块链 数字货币 加密货币 加密解密

《你好架构师之 压榨硬件价值的利器容器(Docker)》

再见小飞侠

Java小想法: JDK许可证

X.F

Java 编程语言

从nacos客户端的TIME_WAIT说起

捉虫大师

Java TCP nacos

白话计算机网络通信过程

WB

程序员 计算机网络

软件产品的信息安全问题

Interstate5

软件开发 信息安全

Redis学习笔记(集合类型)

编程随想曲

redis

Android Studio NDK 编译 Bsdiff 库

码农亮哥

android-studio ndk bsdiff

LeetCode 1232. Check If It Is a Straight Line

liu_liu

LeetCode

webpack入门(一)

子铭

《零基础学 Java》 FAQ 之 3-为什么计算机里的浮点数不精确

臧萌

Java 浮点数

一口气带你踩完五个 List 的大坑,真的是处处坑啊!

楼下小黑哥

Java 踩坑 后端 集合

Azure的储存选项_.NET_Jonathan Allen_InfoQ精选文章