mysql - maxscale 代理不会将来自 flask-sqlachamy 的读取请求路由到从属设备
问题描述
我有一个带有一个主设备和两个从设备的 maxscale mariadb 集群。我正在使用 flask-sqlachemy ORM 进行查询和写入。
我写了风格的阅读查询
db.session(User).join()....
现在我所有的读取查询都将扩展到最大规模的主节点
以下是maxcalse日志
2021-09-14 17:38:26 info : (1239) (Read-Write-Service) > Autocommit: [disabled], trx is [open], cmd: (0x03) COM_QUERY, plen: 287, type: QUERY_TYPE_READ, stmt: SELECT some_col FROM user
2021-09-14 17:38:26 info : (1239) [readwritesplit] (Read-Write-Service) Route query to master: Primary <
我也尝试过其他方法
conn = mysql_connector.connect(...)
conn.autocommit(True)
cursor = conn.cursor()
cursor.execute(query)
这工作正常,并将查询路由到从属设备之一。
但我的大部分代码都是用 ORM 风格编写的。有没有办法在使用时实现这一点flask-sqlalchemy
解决方案
如果禁用自动提交,则始终有一个打开的事务:用于START TRANSACTION READ ONLY
启动显式只读事务。这允许 MaxScale 将事务路由到从站。
推荐阅读
- android - Google Android 应用隐私政策 垃圾邮件
- newrelic - 在 NRQL (New Relic) 的嵌套选择中使用 IN 运算符
- python - 与 tensorflow 和 keras 不兼容的软件包
- firebase - 导出 firebase 函数导致“function.js 不存在”错误
- bash - 用于监控进程的 CPU 利用率并在 Linux 中以某个阈值自动关闭的脚本
- python - 如何在 Python 中过滤 API 搜索结果?
- sql - Sybase - 仅返回过去三天的数据
- javascript - 显示元素不起作用:在特定站点上
- python - Python/Numpy:一个 Numpy Unicode 数组可以有多大?
- reactjs - 如何在史诗中调度动作并继续它?