Ale*_* DZ 6 java orm scalability sharding
我们目前正在设计Web项目,我们必须使用Java堆栈.
首先,考虑到有限的负载,我们可以使用单个数据库(在我们的例子中是PostgreSQL).在这种情况下,像Hibernate这样的ORM将是一个很好的决定,因为我们知道对象/关系问题总是耗费时间和成本最高的问题之一.这是使用ORM工具的全部原因 - 便宜,节省了大量时间.
但问题是,我们期待稍后在数据库层中进行分片和主/从(读/写)复制,这对ORM来说是一个真正的问题(至少据我所知).
如果我错了,请纠正我,并且我们可以使用的Java堆栈有一个很好的ORM工具.
据我所知,我知道有一个名为Hibernate Shards的项目可以解决问题,但它从未通过测试版,并且在2007年开始停止开发.
使用带有分布式二级缓存的常规Hibernate,我们可以使用多个节点
使用业务逻辑,但这不能解决数据库可伸缩性问题,我们仍然只能为应用程序使用一个数据库.
结论:是否有开源/免费的ORM适用于我们的情况(Java堆栈),或者我们应该自己实现它,即使成本很高,以便提供数据库可扩展性以及以后可能带来的其他好处.
谢谢!
我必须为 Java 数据对象说几句好话,尤其是http://www.datanucleus.org上的实现,特别是如果您使用注释和类型安全查询语言,那么很容易加快速度并真正做到这一点有趣的东西很快。
此外,JDO 与数据库无关,因此如果您决定使用关系数据库以外的数据库,则转换相对简单。由于它使用 JDBC 驱动程序连接到数据库,因此在该级别附加的集群/分片解决方案应该相对透明。(这完全是我的一厢情愿——我不知道这是真的,但应该是吧?)
我给了自己两三天的时间来学习 Hibernate 和一本大书,并认为我过于频繁地重复自己,并将自己限制在 RDB 系统上。看看它,看看你有什么想法。