使用Spring 3配置两个PostgreSQL数据库(故障转移机制)

时间:2013-09-18 11:51:05

标签: java spring postgresql java-ee configuration

我正在使用Tomcat JDBC API(org.apache.tomcat.jdbc.pool.DataSource)从Spring配置文件连接到我的PostgreSQL数据库,如下所示。我有一个新的要求来配置两个应该充当故障转移机制的数据库,就像当一个数据库关闭时,应用程序应该自动切换回另一个数据库。

<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource"
        destroy-method="close">
        <property name="driverClassName" value="org.postgresql.Driver" />
        <property name="url" value="jdbc:postgresql://localhost/dbname?user=postgres" />
        <property name="username" value="postgres" />
        <property name="password" value="postgres" />
        <property name="maxActive" value="5" />
        <property name="maxIdle" value="5" />
        <property name="minIdle" value="2" />
        <property name="initialSize" value="2" />
    </bean>

任何人都可以建议如何使用Spring配置文件实现这一目标。

1 个答案:

答案 0 :(得分:2)

这样做的正常方法是使用虚拟IP地址(可能转发),检查活动,射击其他节点的方法以及正确的故障转移。如果你想避免像数据丢失这样的事情,Spring就是错误的解决方案。

一些建议。

    来自2ndquadrant的
  1. repmgr将为您管理很多流程。
  2. 使用相同的硬件和操作系统以及流式复制。
  3. 使用虚拟IP地址等。使用心跳机制通过rempgr
  4. 触发故障转移

    然后从这个角度来看,你的春季应用程序不需要重新配置。