gpt4 book ai didi

java - 具有 MySQL 故障转移功能的 Hibernate Web 应用程序

转载 作者:行者123 更新时间:2023-11-29 01:04:12 26 4
gpt4 key购买 nike

我开发了一个 Java 网络应用程序,使用 Hibernate 3.3.2 作为持久性框架,使用 Apache Tomcat 7.0.27 作为服务器。此应用程序已成功设置为使用 MySQL 5.5 Replication Servers:1 个主服务器,1 个从服务器。只读查询在后者上进行,其他在主实例上进行。

问题来了:我想测试数据库故障转移,即在某个时候停止从属 MySQL 实例并查看应用程序仍然可以很好地处理只读查询。据我从以下文章中了解到 MySQL Failover with Connector/J ,这应该可以在不更改代码的情况下实现。首先,我对第二种情况感兴趣:通信异常(SQL 状态以“08”开头)。不幸的是,这不会发生,如果我停止从服务器,有时需要很长时间才能从服务器获得响应,有时没有任何响应并且 HTTP 连接会卡住。在 Tomcat 日志中,只需获取以下行:

The last packet successfully received from the server was N milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.

这是 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 连接器文档时,我尝试了很多属性配置,但无法弄清楚如何获得可靠的故障转移。

最佳答案

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

它应该可以正常工作...但我不知道如何...

似乎很多人都使用一些外部代理或负载均衡器:

关于java - 具有 MySQL 故障转移功能的 Hibernate Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12385079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com