我正在使用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 地址(可能进行转发)、检查活动、在头部射击其他节点的方法和适当的故障转移。 如果你想避免数据丢失之类的事情,Spring完全是错误的解决方案。
一些建议。
- 来自第二象限的 Repmgr 将为您管理很多流程。
- 使用相同的硬件和操作系统以及流式复制。
- 使用虚拟 IP 地址等。 使用检测信号机制通过 rempgr 触发故障转移
然后从这个角度来看,你的 spring 应用程序不需要重新配置。