技术开发 频道

云计算:亚马逊网络服务(AWS)探秘

  亚马逊的简单数据库服务(SimpleDB)。
        亚马逊S3是专为大型,非结构化的数据块设计, 而SimpleDB是为复杂的,结构化数据建立的。与其他服务一样,这个名称说明了一切。虽然SimpleDB是使用轻量级并且很容易掌握的查询语言实现的数据库,但他支持大部分你可能会需要的数据库操作(搜索,提取,插入,并删去)。为保持SimpleDB简洁,亚马逊遵循一个原则,就是最好的API拥有最低限度的切入点:SimpleDB有七项。

  SimpleDB数据库不是像Oracle或MySQL那样的关系数据库。 (亚马逊的文件指出,如果你确实需要成熟的关系数据库,你可以在弹性计算云中的AMI平台上免费的运行MySQL服务器)。SimpleDB数据库(一个“领域”在SimpleDB说法)由数据项组成,并且数据项目由属性组成。 属性是一个名字/数值对。 最少,数据项必须有ItemName属性,担当数据项的唯一识别符。 当你发送一次查询时,结果是ItemName数值的汇集-获取数据项的实际内容(属性),你使用那些数值作为输入执行Get操作。

  并不是那么简单,SimpleDB拥有令人惊讶的能力。 一个 SimpleDB数据库可以成长到10 GB的和安置多达2.5亿个属性。你可以为某一特定数据项定义多达256个属性,并没有规定在一个域中所有的数据项具有相同的属性。在此外,特定的属性可以有多个值,因此,客户数据库,可以为单一customername属性存储多个别名。

  最后,SimpleDB是专为支持“实时” (快速周转)查询设计。为确保快速查询响应,当数据项被放置在数据库中时,所有属性将自动索引编号。此外,亚马逊的文件显示,查询应在不超过5秒内完成,否则,查询可能会中止。亚马逊这么做是为确保查询收到一个快速反应,即使使查询达到妨碍调用程序的恶意程度。

  亚马逊简单队列服务(SQS)。亚马逊SQS相对于JMS或MQSeries服务体系来说,只是一个简单的消息队列服务。SQS最显著的特征是它的无所不在。一个亚马逊的书籍文献表明: “在互联网的所有计算机不用安装任何软件或特殊防火墙配置就可以增加或读消息”。 当然, SQS信息的处理端很可能就是EC2上的AMIs。

  像亚马逊其他网络服务,SQS名副其实:消息只许是文字,并且长度必须小于8 KB。你可以构建一个具有四个功能的工作队列:createqueue , sendmessage , receivemessage , deletemessage 。 (还有其他方便的功能; 例如,ListQueues将列出现有帐户的的队列) 。

  SQS队列主要设计支持分布式计算机系统之间的工作流,因此,并发管理和故障排除是绝对的。 当客户从队列读一则消息时,那则消息没有被删除; 它被锁定,导致其他客户看不见。 用那个方式,如果消息作为工作流一部分,代表一项具体任务执行,两个客户不可能同时读一消息,并且复制。 然而,如果消息没有在指定的暂停之前被删除,锁就被解除了。 然而,目的是让消息的原始读者指定的工作完全时将消息删除。 如果原始的读者无法完成工作(或许由于系统事故),那么暂停到期,消息在队列中“再现”,并且一个不同的客户能读消息和承担该指定的工作。

0
相关文章