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

标签 java spring postgresql jakarta-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 配置文件实现这一点。

最佳答案

完成此操作的正常方法是使用虚拟 IP 地址(可能进行转发)、检查 Activity 、攻击其他节点的方法和适当的故障转移。如果您想避免数据丢失之类的事情,Spring 正是错误的解决方案。

一些建议。

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

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

关于java - 使用 Spring 3 配置 PostgreSQL 数据库(故障转移机制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18871492/

相关文章:

java - 为什么在对 Controller 类进行单元测试时使用 Spring Mockmvc

postgresql - 如何使我对一个 ID 的查询适用于多个 ID

java - 模拟默认 SharedPreferences

java - 比较两个字符串并按字母顺序对它们进行排序

java - PagedResources<Resource 和 RestTemplate 不起作用

从套接字读取/解密时出现 java.io.EOFException

java - Spring Integration 和流程需要时间和暂停的问题

java - Spring 2.5.1 是否与 JDK 1.7 兼容

postgresql - PostgreSQL 中最有效的数组表示法

mysql - SymmetricDS:MySQL 与 PostgreSQL 实时同步