目前主从复制完成,使用maxscale的readwritesplit函数进行select和insert的分支。
我用的是common dbcp,通过datasource配置使用testOnBorrow和validationQuery的选项检查连接,但是因为查询是通过maxscale传输的,validationQuery的select 1只传输给slave,无法检查master的连接有效性.
master没有检查连接的有效性,所以如果长时间不使用WAS后连接,就会出现db connection相关的错误。
为了解决这个问题,我使用了 master_accept_reads = true,但我不想使用它,因为它会为 master 产生更多流量。作为我使用的另一个选项 persistpoolmax,persistmaxtime,但我得到了相同的错误消息。
我想知道是否有一种方法可以在 maxscale 或 mariadb 中发送连接验证查询,例如 ValidationQuery,而不区分主从。
感谢您阅读长文。