gpt4 book ai didi

mysql - Spring + Hibernate +数据库连接池和高可用性

转载 作者:行者123 更新时间:2023-11-30 23:27:40 25 4
gpt4 key购买 nike

我正在尝试像这样配置我的Web应用程序:
1个tomcat服务器
master / master复制中的2个mysql数据库用于故障转移。

我还成功地使用c3p0设置了池连接,因此避免了为每个请求打开新的连接(当不涉及故障转移时)

我想使用jdbc连接器提供的故障转移支持,以便在第一个数据库不可用时将请求路由到第二个数据库。因此,我通过提供额外的配置参数来使用jdbc驱动程序的故障转移功能。

目前,当一台服务器不可用时,请求将路由到第二台可用服务器。但是,我面对每个请求在数据库上新打开的连接的问题。

似乎将连接池和jdbc故障转移组合在一起还行不通吗?

请咨询,也关于配置参数

<bean id="mydataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"     destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306,myOtherServer:3306/zeus?autoCommit=true&amp;autoReconnect=true&amp;autoReconnectForPools=true&amp;failOverReadOnly=false"/>
<property name="user" value="root" />
<property name="password" value="root" />

<!-- these are C3P0 properties -->
<!-- property name="acquireIncrement" value="${acquireIncrement}" /_-->
<property name="minPoolSize" value="6" />
<property name="maxPoolSize" value="10" />
<property name="maxIdleTime" value="100" />
</bean>

最佳答案

抱歉,这不是一个真正的答案,但是昨天我遇到了同样的问题,并提出了类似的问题=> Hibernate web application with MySQL failover,因此希望加入“我们的力量”。也因为找不到关于此问题的明确指南。

我也使用c3p0,但是关闭它并不能使它变得更好,故障转移也不管用。因此,我认为这不是连接池问题。
似乎与Spring事务管理和自动提交有关,但是即使我阅读了很多有关MySQL和故障转移的文章,并且做了很多不同的尝试,我仍然感到很困惑。
我和您的配置之间的最大区别是驱动程序,我使用的是:com.mysql.jdbc.ReplicationDriver。

我希望尽快找到解决方案,在这种情况下,请确保我会分享。

关于mysql - Spring + Hibernate +数据库连接池和高可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12395826/

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