java – 关于ORM RDBMS的替代方案的想法?

前端之家收集整理的这篇文章主要介绍了java – 关于ORM RDBMS的替代方案的想法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在为替代数据存储开发概念证明.我之所以需要增强一个主要是读取群集的webapp,还因为我想摆脱有时 overly-complex ORM+RDBMS solution的痛苦.

总体而言,这个想法非常类似于具有持久性的分布式缓存(让集群成为SoR),但是:

>希望能够通过以下方式检索任何对象及其子对象
id(提供class& id)[仅限于开始,作为主要
查询部分已经在我的应用程序中使用lucene解决].
>需要有类型映射的映射(〜关系表中的表
世界),并在其中分布’脱水’存储对象的地图(通过反射深度克隆展平对象图)
> bin日志(例如Prevayler)

>如果整个集群出现故障,最终将恢复
>开发(以及重构代码/更改结构的能力)
>可能为其他目的异步处理(报告,等等)

>最后在尝试集成静态类型的查询机制,如LINQ,Jaque或H2的JaQu /看ODBs / Lucene(?)
>它必须是事务感知(但不确定“JTA类型”)

我打算用Hazelcast(我喜欢它超级简单的API)或Terracotta(我从未使用过 – 但我知道他们的’甜蜜点’,中期数据)来实现这个想法.如果你愿意,我的目标是做或多或少what Jonas once blogged about.使用其中一个,存储的数据大致必须适合集群的JVM堆的总和.

这应该非常简单,可以避免关系阻抗不匹配(即与ODB一样保存)和JDBC I / O开销.

您是否知道其他已经提供类似功能的工具/框架或其组合,我忽略了?
你能否提出其他方法解决这个“摆脱数据库”的问题?你在这个想法中已经看到了什么缺陷?
并发性考虑Scala而不是Java是否有意义?

如Couch DB,Neo4j,HyperTable,HBase等非关系型数据存储怎么样?

一个月前问过similar question – 但没有具体的解决方案.

顺便说一下,我偶然发现了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我的观点背景:我为一家拥有相当多观众的公司工作.我们有一个运行主服务器和大约5个从服务器的企业MysqL(考虑到我们有2个通道的时间为2,每个通道有4个应用服务器),使用MysqL的JDBC Replication驱动程序(我们已经提交了各种补丁).我们使用Spring的声明式JTA事务管理来使用Spring2.5 / Hibernate3,因此read-onlies会转到slave.随着我们网站未来版本的众多Ajax增强功能的出现,我们的数据库服务器的负载已经增加 – 我们为所有国家的数千种产品创建定价摘要,同时考虑到所有这些国家的关税/税收规则(以及促销活动)和实时拍卖一直运行),然后Ajax服务眨眼间有最新的价格. Terracotta通过将这些价格提供给JVM层上的所有应用服务器来解决数据库和应用服务器的负担,并且所有JVM都连接在一起.因此,服务器A可以每隔几分钟更新一次价格,如果Ajax点击服务器B,价格立即可用.我知道有些人/公司有类似的业务,可能有更好的想法和实施,所以我总是开放讨论,但这是我的两分钱.

我也从Facebook上的人那里获得灵感,例如这篇内容非常丰富的文章
http://www.facebook.com/note.php?note_id=23844338919

他们谈论memcached,你也应该检查一下.

原文链接:https://www.f2er.com/java/128771.html

猜你在找的Java相关文章