1

我在 AWS 中使用 MySQL Connector/J ReplicationDriver 进行主/从连接负载平衡,其中我有一个主服务器和两个只读从服务器运行。我面临的问题是,如果假设在 2-3 小时之类的很长一段时间内没有从应用服务器向 mysql 数据库发送写请求,则新的写请求将以异常“连接是只读的。查询”告终不允许导致数据修改”。

我的 context.xml 是

<Context allowLinking="true">
    <Resource
        name="jdbc/DB" type="javax.sql.DataSource"
        maxActive="100" maxIdle="30" maxWait="10000" 
        url="jdbc:mysql:replication://master,slave1,slave2/db"
        driverClassName="com.mysql.jdbc.ReplicationDriver"
        username="user" password="pass"
        validationQuery="/* ping */ select 1" removeAbandoned="true"
        removeAbandonedTimeout="300" testOnBorrow="true"
        logAbandoned="true" loadBalanceBlacklistTimeout=60000
    />
</Context>

我还在 mysql 插入/更新和选择语句中适当地使用了 connection.setReadOnly 和 connection.setAutoCommit。

可能的原因是什么?

4

0 回答 0