写点什么

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:062169
用户头像

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

关注

评论

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

Kotlin-编程核心基石—高阶函数,androidrom定制

android 程序员 移动开发

MVVM系列之三:ViewModel,最新Android开发进阶

android 程序员 移动开发

Native开发工具之应用开发编辑器&打包发布(一),kotlin构造器

android 程序员 移动开发

offer求比较+部分大厂Android面经+真题解析,给2021的Android一些建议

android 程序员 移动开发

Kotlin的自定义View,实现带弧形的进度条,androidjetpack详解

android 程序员 移动开发

lambda表达式(3)-shawn,挑战大厂重燃激情

android 程序员 移动开发

MVPArms官方快速组件化方案开源,来自5K star的信赖,安卓性能优化和内存优化

android 程序员 移动开发

Native开发工具之交叉编译移植(五),android开发基础教程视频

android 程序员 移动开发

ObjectBox 集成指南,建议细读

android 程序员 移动开发

Kotlin下的5种单例模式,一招教你看懂Netty

android 程序员 移动开发

Kotlin协程它不香吗?,kotlin开发游戏

android 程序员 移动开发

Kotlin学习手记——注解,flutter下拉加载

android 程序员 移动开发

万人逐鹿、十强争霸!华为云GaussDB数据库两大重量级赛事圆满落幕

华为云数据库小助手

GaussDB 大赛 华为云数据库

Kotlin写一个解释器(2)---语法分析,安卓项目开发范例大全

android 程序员 移动开发

Kotlin学习手记--泛型、泛型约束、泛型型变,天呐

android 程序员 移动开发

LeakCanary源码分析以及ContentProvider的优化方案,android移动开发

android 程序员 移动开发

offer求比较+部分大厂Android面经+真题解析(1),覆盖所有面试知识点

android 程序员 移动开发

OkHttp 的 IO 操作和进度监听,android应用开发实训总结

android 程序员 移动开发

Kotlin学习手记——注解(1),2021年字节跳动74道高级程序员面试

android 程序员 移动开发

Linux编程之权限系统与工具使用(二),【大牛系列教学】

android 程序员 移动开发

Go语言HTTPServer开发的六种实现

FunTester

HTTP Fasthttp Server Go 语言 FunTester

MaterialDesign系列文章(十一)Google2018年大会新出的控件汇总集合

android 程序员 移动开发

Meterial Design常见控件的使用(八),【面试总结】

android 程序员 移动开发

Meterial Design常见控件的使用(五),移动端h5开发框架

android 程序员 移动开发

《个人信息保护法》正式实施,企业如何保证数据安全合规?

腾讯安全云鼎实验室

数据安全

Kotlin-源码里成吨的-noinline-和-crossinline-是干嘛的?

android 程序员 移动开发

Kotlin系列三:空指针检查,万字长文总结Android多进程

android 程序员 移动开发

livedatabus详解,阿里是如何用他来做淘宝架构的?,android开发视频百度云

android 程序员 移动开发

Meterial Design常见控件的使用(一),安卓面试题2018中高级

android 程序员 移动开发

Kotlin(五)深入理解Kotlin类与接口,androidndk开发视频

android 程序员 移动开发

LeakCanary源码学习二:LeakCanary,sw实战营文件下载

android 程序员 移动开发

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