7

我们目前正在设计 web 项目,我们必须使用 java 堆栈。

首先,考虑到负载有限,我们可以使用单个数据库(在我们的例子中是 PostgreSQL)。在这种情况下,像 Hibernate 这样的 ORM 将是一个不错的决定,因为我们知道对象/关系问题始终是最耗费时间和成本的问题之一。这就是使用 ORM 工具的全部原因 - 便宜,节省大量时间。

但问题在于,我们期望稍后在数据库层进行分片和主/从(读/写)复制,这对于 ORM 来说是一个真正的问题(至少据我所知)。

如果我错了,请纠正我,我们可以使用一个很好的 Java 堆栈 ORM 工具。

根据链接,我知道有一个名为Hibernate Shards的项目可以解决这个问题,但它从未通过 beta 版本,并且它的开发在 2007 年停止。

使用带有分布式二级缓存的常规 Hibernate,我们可以使用节点数

有业务逻辑,但这并不能解决数据库可扩展性的问题,我们仍然可以只为应用程序使用一个数据库。

底线:是否有适合我们案例的开源/免费 ORM(Java 堆栈),或者我们是否应该自己实现它,即使成本很高,以便在以后提供数据库可扩展性和可能的​​其他好处。

谢谢!

4

2 回答 2

0

我必须对 Java 数据对象说一句好话,特别是对于http://www.datanucleus.org上的实现特别是如果您使用注释和类型安全的查询语言,很容易上手并真正做到有趣的东西很快。

此外,JDO 与数据库无关,因此如果您决定宁愿使用关系数据库以外的其他东西,则转换相对简单。由于它使用 JDBC 驱动程序连接到数据库,因此附加在该级别的集群/分片解决方案应该是相对透明的。(这完全是我的一厢情愿——我不知道这是真的,但应该是,对吧?)

我用 Hibernate 和一本大书给了自己两三天的时间,并决定我过于频繁地重复自己并将自己限制在 RDB 系统中。看看你的想法。

于 2013-07-14T23:15:05.053 回答
-1

要考虑的一个解决方案是购买一个水平可扩展性解决方案,它将为您解决所有这些问题。

有几种解决方案可以让您在不更改应用程序的情况下进行水平扩展(分片等技术所需的更改)。

于 2013-08-12T20:28:46.320 回答