proxy - 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,而不区分主从。
感谢您阅读长文。
解决方案
您可以使用提示过滤器将查询路由到主服务器。
推荐阅读
- reactjs - 反应 onblur 不执行处理程序
- java - 无法将 ModelAttribute 中的 MultipartFile 与 Thymeleaf 一起使用
- c# - C# WPF 使用触发器将样式对象添加到 Datagrid 中的单元格
- php - Codecept Yii2 Docker 404
- android-studio - 如何使 Android Studio 不使用 compileOnly 依赖项来运行单元测试?
- javascript - Chartjs + moment() 未在 django 上显示
- python - 无法安装 geopandas
- scala - 你可以在不上传 JAR 的情况下通过 Livy 运行 Scala 代码吗?
- jdbc - ActiveMQ 调度程序在 JDBC 中的存储
- java - 杰克逊对象映射器中的模拟异常流