我目前正在为替代数据存储开发概念证明.我之所以需要增强一个以读取为主的集群式webapp,还因为我想摆脱有时过于复杂的ORM + RDBMS解决方案的痛苦.
总体而言,这个想法非常类似于具有持久性的分布式缓存(让集群成为SoR),但是:
我打算用Hazelcast(我喜欢它超级简单的API)或Terracotta(我从未使用过 - 但我知道他们的'甜蜜点',中期数据)来实现这个想法.如果你愿意,我的目标是或多或少地做Jonas曾经写过的博客.使用其中一个,存储的数据大致必须适合集群的JVM堆的总和.
这应该非常简单,可以避免关系阻抗不匹配(即与ODB一样保存)和JDBC + I/O开销.
您是否知道其他已经提供类似功能的工具/框架或其组合,我忽略了?你能否提出其他方法来解决这个"摆脱数据库"的问题?你在这个想法中已经看到了什么缺陷?并发性考虑Scala而不是Java是否有意义?
如Couch DB,Neo4j,HyperTable,HBase等非关系型数据存储怎么样?
一个类似的问题被要求在一个月前-但没有具体的解决方案.
顺便说一下,我偶然发现了Enterprise Data Fabric的概念,令我惊讶的是,它描述了很多这些想法.
一定要尝试一下Terracotta。它是免费的(除非您选择具有 SLA 和支持的 Enterprise)。可以这么说,它是一个 JVM 级别的集群,因此您不会遇到与不同 JK 工作线程后面的多个机器上的会话相关的问题(假设您将其用于 J2EE 应用程序)。
我只是漫无目的,所以请看这里: http: //en.wikipedia.org/wiki/Terracotta_Cluster
也在网上更新了有关 Terracotta 的大量信息,例如http://blog.terracottatech.com/2007/12/fud_of_the_week_terracotta_doe.html
UPDATE2我的观点背景:我在一家拥有相当多受众的公司工作。我们有一个企业级 MySQL,运行有一个主服务器和大约 5 个从服务器(考虑到我们有 2 个通道,每个通道有 4 个应用程序服务器,所以是 2 倍),使用 MySQL 的 JDBC 复制驱动程序(我们已经为此提交了各种补丁)。我们使用 Spring2.5/Hibernate3,使用 Spring 的声明式 JTA 事务管理,因此从属设备为只读。随着我们网站未来版本中大量 Ajax 增强功能的出现,我们的数据库服务器负载有所增加 - 我们为所有国家/地区的数千种产品创建定价摘要,同时考虑所有这些国家/地区的关税/税收规则(以及促销活动)以及一直运行的实时拍卖),然后 Ajax 服务眨眼间即可获得最新价格。Terracotta 将这些价格提供给 JVM 层上的所有应用程序服务器,并链接所有盒子上的 JVM,从而减轻了数据库和应用程序服务器的负载。因此,服务器 A 可以每隔几分钟更新一次价格,如果 Ajax 访问服务器 B,则价格会立即可用。我知道有些人/公司有类似的业务,他们可能有更好的想法和实施,所以我总是愿意讨论,但这是我的两分钱。
我也从 Facebook 的人那里得到了灵感,例如这篇内容非常丰富的文章: http://www.facebook.com/note.php? note_id=23844338919
他们谈论的是memcached,你也一定要看看。
| 归档时间: |
|
| 查看次数: |
2603 次 |
| 最近记录: |