带有MySQL簇的PHP/PDO

Ben*_*ess 10 php mysql pdo cluster-computing

我被要求重新开发一个旧的php web应用程序,它当前使用mysql_query函数来访问一个复制的数据库(4个奴隶,1个主人).

这次重新开发的一部分将把一些数据库移动到一个mysql集群中.我这些天经常使用PDO访问数据库,我试图找出PDO是否可以很好地与群集一起使用,但我在网上找不到很多有用的信息.

有人对这个有经验么?我以前从未使用集群...

Jos*_*ser 3

我已经用几种不同的方式做到了这一点,并取得了不同程度的成功。简而言之,您的 PDO 连接应该可以正常工作。据我所知,选项如下:

如果您使用复制,那么要么编写一个类来处理与各种服务器的连接,要么使用代理。代理可以是硬件或软件。MySQL Proxy (http://docs.oracle.com/cd/E17952_01/refman-5.5-en/mysql-proxy.html) 是我曾经使用过的软件负载均衡器,并且在大多数情况下它都能达到目的。它会自动在读者和作者之间路由流量,并像冠军一样处理故障转移。我们时不时地会编写一个查询,该查询会导致查询失败,并且必须进行调整,但那是几年前的事了。现在可能状况更好了。

另一种选择是使用标准负载平衡器并创建两个连接 - 一个用于写入器,另一个用于读取器。您的应用程序可以根据它尝试执行的功能决定使用哪个连接。

最后,您可以考虑使用 MySQL 提供的最大数据库集群。在此设置中,MySQL 服务器都是读取器和写入器。您只需要一个连接,但需要一个负载均衡器来路由所有流量。如果索引不同步,最大数据库集群可能会很棘手,因此如果您选择此选项,请谨慎行事。

澄清:当我提到连接时,我的意思是连接到 MySQL 的地址和端口 - 不要与在同一端口上运行的并发连接混淆。

祝你好运!