与MySQL故障切换休眠的web应用程序(Hibernate web application wit

2019-09-22 08:20发布

我公司开发的Java Web应用程序,使用Hibernate 3.3.2作为持久性框架和Apache Tomcat 7.0.27作为服务器。 该应用程序已成功建立了使用MySQL 5.5的Replication Server:1个主站,1个从站。 只读查询下去后者和主实例别人。

在这里,问题来了:我想考DB故障切换,即在一段时间内停止从MySQL实例和查看应用程序仍然只读查询工作。 据我从以下文章了解MySQL的故障切换接口/ J ,这应该是可能在不改变代码。 要开始我感兴趣的是第二种情况:一种通信异常(SQL状态开始以“08”)。 不幸的是,这不会发生,如果我不从,有时需要很长的时间来从服务器的响应,有时候没有回来,HTTP连接卡住。 在Tomcat的日志只得到下面一行:

从服务器成功接收最后一个包是n毫秒以前。 成功发送到服务器的最后一个数据包为0毫秒前。

下面是Hibernate配置的一个片段:

<property name="hibernate.connection.driver_class">com.mysql.jdbc.ReplicationDriver</property>
<property name="hibernate.connection.url">jdbc:mysql://masterIP,slaveIP/mydb?loadBalancePingTimeout=1500&amp;loadBalanceBlacklistTimeout=7000&amp;autoReconnect=true&amp;failOverReadOnly=false&amp;roundRobinLoadBalance=true</property>

在注视了MySQL连接器文档,我已经尝试了许多性能配置,但无法弄清楚如何获得可靠的故障切换。

Answer 1:

我同样的问题: https://dba.stackexchange.com/questions/19453/jboss-dont-fail-over-mysql-slave-using-datasource 。

它应能正常工作......但我不知道如何...

似乎很多生民使用一些的外部代理或负载均衡:

  • 故障转移在MySQL JDBC连接?
  • 如何使用数据库处于休眠备份/故障切换?


文章来源: Hibernate web application with MySQL failover