首页 > 解决方案 > maxscale master slave 连接池中的有效连接检查

问题描述

目前主从复制完成,使用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,而不区分主从。

感谢您阅读长文。

标签: proxymariadbreplicationmaxscale

解决方案


您可以使用提示过滤器将查询路由到主服务器。

https://mariadb.com/kb/en/mariadb-maxscale-24-hintfilter/


推荐阅读