java - Java 应用程序的后备数据库

标签 java persistence replication

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

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

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

这些解决方案看起来都没有前途。 HA-JDBC 已经过时了,而且 Tungsten 似乎主要用于 MySQL。我什至还没有找到有关将这些与 JPA 一起使用的示例。

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

最佳答案

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

两个postgresql数据库,一主一辅应该没问题。您还可以在带有虚拟机的云服务器上运行这些,理论上云服务器永远不会宕机,因为如果一台机器死机,您的虚拟机就会在另一台机器上运行。

有很多思考的方法。

关于java - Java 应用程序的后备数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6342019/

相关文章:

java - 将无缝播放信息添加到 AAC

java - 在 Apache CXF JAX-RS 中,如何打开 AUTO_REDIRECT_ALLOW_REL_URI 标志?

java - JPA 似乎有效但没有返回结果

ios - 通过 Testflight 安装新版本时 NSUserDefaults 是否持续存在?

sql - 无法获取有关 Windows NT 组用户的信息

java - 使用计时器的基本java子弹动画

java - 在 ListView 中添加动态图像

dns - 域层访问持久性内容

database - 将不同数据库的表子集复制/复制到第三个数据库

Mysql 主从复制