Java应用程序的后备数据库

时间:2011-06-14 10:10:05

标签: java persistence replication

我们的一个Java项目需要一个冗余数据存储系统,该系统非常可靠,如果其中一个数据库引擎发生故障,应用程序仍然可以读取和写入其他存储的数据。恢复故障节点后,新数据将自动同步回来。

我们考虑过混合环境,比如PostgreSQL数据库作为主节点,另一个PostgreSQL数据库作为辅助节点在不同的服务器上,例如。服务器应用程序附近的HSQL文件数据库作为第三个节点。

我们喜欢在这个系统的顶部使用JPA层(可能是Hibernate)。由于持久性,我想到了一个隐藏所有复制细节的透明JDBC驱动程序。到目前为止,我在网上找到了这些项目:

这些解决方案看起来很有前景。 HA-JDBC已经过时,看起来Tungsten主要用于MySQL。我甚至没有找到关于在JPA中使用这些的例子。

我们还有其他解决方案吗?也许我们应该以不同的方式解决问题?

2 个答案:

答案 0 :(得分:1)

为什么要这样做,如果您要解决的问题是故障转移或100%正常运行时间或出现故障时的冗余,那么还有其他方法可以解决这个问题。

两个postgresql数据库,一个master和secondary应该没问题。您也可以在具有虚拟机的云服务器上运行这些服务器,理论上云服务器永远不会停机,因为如果机器死机,您的VM就会在不同的机器上运行。

有很多想法。

答案 1 :(得分:0)

Oracle数据库擅长此类事情。

FWIW,我会寻求一个只涉及一个数据库供应商的解决方案。实施起来可能更简单,管理/维护也更简单。