WEB开发网
开发学院软件开发Java Java 开发 2.0: 使用 Amazon SimpleDB 进行云存储... 阅读

Java 开发 2.0: 使用 Amazon SimpleDB 进行云存储,第 1 部分:开始使用 SimpleDB 和 Amazon SDK

 2010-08-11 00:00:00 来源:WEB开发网   
核心提示: SimpleDB 的‘最终一致性’CAP theorem表明,一个分布式系统不能同时高度可用、可伸缩并确保一致性;确实,Java 开发 2.0: 使用 Amazon SimpleDB 进行云存储,第 1 部分:开始使用 SimpleDB 和 Amazon SDK(2),一

SimpleDB 的‘最终一致性’

CAP theorem表明,一个分布式系统不能同时高度可用、可伸缩并确保一致性;确实,一个分布式系统任何时候仅支持这三个特质中的两种。相应地,SimpleDB 可以确保一个高度可用、可伸缩的数据存储,但不支持即时一致性。SimpleDB 支持的是 最终一致性,这并不像您想象的那样糟糕。

对于 Amazon 来说,最终一致性是指一切在 几秒内在所有节点(不过在一个区域内)上都变得一致。在这一小段时间内,两个并发进程可能会读取同一数据的两个不同实例,而在此期间您换来的是大规模可靠性和一个实惠的价格。(您只需向提供类似可靠性的商业实体漫天要价,从而查看其区别。)

属性是真正的名 / 值对(有点像 Bigtable,不是吗?)且 “对” 并不局限于一个值。也就是说,一个属性名可以有一个相关值集合(或列表);例如,一个词项目可以有多重定义的属性值。此外,SimpleDB 内的所有数据都以 String形式表示,这明显不同于 Bigtable 或甚至是一个 RDBMS,后者通常支持混合数据类型。

SimpleDB 的单数据类型属性值方法有利有弊,这取决于您如何去看待它。不管是利是弊,它确实隐含着查询的运行方式(不久将介绍更多相关内容)。SimpleDB 也不支持跨域联接的概念,因此您不能查询多个域中的项目。不过,您可以通过执行多个 SimpleDB 并在您这一端执行联接来克服此局限。

项目 本身没有主键(就像 Bigtable 一样)。一个项目的主键或惟一标识符是项目的名称。SimpleDB 非常智能,能够在发出一个副本创建请求时更新一个项目,只要该项目的属性已被更改。

与其他 Amazon Web Services 一样,SimpleDB 通过 HTTP 公开一切内容,因而有多种方式可与之交互。在 Java 中,我们的选项从 Amazon 自己的 SDK(我们会在接下来的例子中用到)到一个名为 Topica 的流行项目,甚至到成熟的 JPA 实现(我们将在第 2 部分探讨)。

上一页  1 2 3 4 5 6 7  下一页

Tags:Java 开发 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接