使用 proxySQL 和 MySQL 集群插入/更新后出现小延迟问题
P粉194919082
P粉194919082 2024-03-21 21:11:42
0
1
335

我们正在将 MySQL 集群与 proxySQL 结合使用,并进行以下设置:

  • 服务器 1 是托管主数据库的主服务器,位于欧洲
  • 服务器 2 是位于亚洲的一台服务器,用于为本地用户提供服务,该服务器包含数据库的只读版本,当发生更改时,服务器 1 会更新该版本。

问题是这样的: 服务器 2 上的用户触发 SQL UPDATE,UPDATE 客户 SET name= 'New Name' WHERE id = 123。(此更新发送到服务器 1,然后服务器 2 更新)

在同一代码块中,如果我们选择记录(SELECT name FROMcustomers WHERE id =123),则该查询将发送到本地服务器,结果将是“旧名称”,除非我们暂停代码 1 秒(进行测试)。

我们想到的一个解决方案是更改连接 (PHP) 并直接转到服务器 1 来获取代码块的剩余部分,但这有点违背了目的,而且远非理想(安静的大型代码库需要更新)。

是否有涉及 proxySQL 的解决方案?

P粉194919082
P粉194919082

全部回复(1)
P粉122932466

为了防止查询路由到具有高复制延迟的从属服务器,您可以在表 mysql_server 列中设置阈值最大复制延迟 最大复制延迟。参考:max_replication_lag

max_replication_lag – 如果大于 0,ProxySQL 将 定期监控复制延迟以及是否超出配置的范围 阈值,它将暂时避开主机,直到复制赶上。

您还可以创建查询规则来拆分查询读写。 ref : ProxySQL 拆分读/写

重要proxysql-gtid-causal-reads 如果您使用的是 Mysql 版本 5.7.5 或更高版本,这可能主要解决您的问题。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板