目前主从复制已经完成,使用maxscale的readwritesplit函数对select和insert进行了分支。
我使用的是普通的dbcp,通过数据源配置使用testOnBorrow和validationQuery选项检查连接,但是由于查询是通过maxscale传输的,所以validationQuery的select 1只会传输到备机,无法检查主机的连接合法性。
master不会检查连接的有效性,因此如果您在长时间不使用WAS后进行连接,则会出现与db连接相关的错误。
为了解决这个问题,我使用了master_accept_reads = true,但我不想使用它,因为它会生成更多到主服务器的流量。作为我使用的另一个选项persistpoolmax,persistmaxtime,但我得到了相同的错误消息。
我想知道是否有一种方法可以发送连接验证查询,如maxscale或mariadb中的ValidationQuery,而不区分主和从。
感谢您阅读这篇长文。
发布于 2020-11-26 05:34:07
您可以使用提示筛选器将查询路由到主服务器。
https://stackoverflow.com/questions/65002821
复制相似问题