搜索

首页  >  问答  >  正文

使用 proxySQL 和 MySQL 集群插入/更新后出现小延迟问题

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

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

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

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

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

P粉194919082P粉194919082337 天前389

全部回复(1)我来回复

  • P粉122932466

    P粉1229324662024-03-22 16:33:06

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

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

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

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

    回复
    0
  • 取消回复