【问题标题】:Fallback database(s) for a Java application [closed]Java应用程序的后备数据库[关闭]
【发布时间】:2011-06-14 10:10:05
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: java persistence replication


    【解决方案1】:

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

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

    有很多思考方式。

    【讨论】:

    • 我能否配置 PostgreSQL JDBC 驱动程序(可能带有连接字符串),使其不会注意到任何有关 PostgreSQL 数据库从复制集中丢失的信息?
    【解决方案2】:

    Oracle 数据库擅长这种事情。

    FWIW,我会选择只涉及一个数据库供应商的解决方案。它可能更易于实施和管理/维护。

    【讨论】:

    • 最好有大预算。拉里·埃里森 (Larry Ellison) 品味昂贵。
    • 是的……但是如果你想要高可靠性、高可用性等,你可能需要为此付费。
    猜你喜欢
    • 2011-03-29
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    相关资源
    最近更新 更多