【问题标题】:MySQL replication - Should I handle load balancing from my client code (PHP)? [closed]MySQL 复制 - 我应该从我的客户端代码 (PHP) 处理负载平衡吗? [关闭]
【发布时间】:2011-02-17 21:59:35
【问题描述】:

在 MySQL 主从复制环境中,如果我有 4 个从服务器,我如何执行负载平衡的选择查询?

我应该编写一个 PHP 类来处理 4 个从站,还是可以解决对 MySQL 自己的负载均衡器解决方案的查询?有没有 MySQL 负载均衡解决方案?

我可以使用其他工具来分发我的查询吗?在这种情况下,典型的设置是什么?

感谢所有回答!

【问题讨论】:

    标签: php mysql replication load-balancing


    【解决方案1】:

    通常的做法是在你的 mysql 集群前面设置类似 ldirectord 的东西,以提供一个虚拟 ip 作为集群的负载平衡地址,然后可以将你的查询分发到各种 mysql 服务器。

    这将需要 ipvs 路由,这对于您的具体情况可能/可能不会过度杀伤,可能是负载平衡的 php 控制适合您想要实现的目标。

    【讨论】:

      【解决方案2】:

      是和不是。

      其实有两个问题需要回答:

      1. 此查询应该发送到从属数据库还是主数据库?
        • 这个逻辑应该在 PHP 中。在某些情况下,您必须拥有绝对最新的数据,而这些数据不能从奴隶那里获得。例如,如果用户更改了一个页面,您需要从主数据库构建更新的页面——用户的更改可能还没有到达从数据库。这是非常特定于应用程序的,因此第 3 方工具可能无法为您执行此操作。
      2. 这个查询应该去哪个从站?
        • 这个,您可能不需要自己编写——对于您的应用程序来说,哪个特定从站处理请求并不重要。现有工具应该可以很好地处理这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-25
        • 1970-01-01
        • 2021-07-11
        • 1970-01-01
        • 2011-08-07
        • 2020-08-09
        相关资源
        最近更新 更多