故障转移如何在Google Cloud SQL上运行?

IMB*_*IMB 5 php mysql google-app-engine

我打算将PHP应用程序(从Googel Cloud Platform外部的服务器)连接到Google Cloud SQL.我想知道如何设计应用程序以正确地故障转移其数据库.

根据手册:

当发生区域中断并且主服务器故障转移到故障转移副本时,将关闭与该实例的任何现有连接.但是,您的应用程序可以使用相同的连接字符串或IP地址重新连接; 故障转移后,您无需更新应用程序.

看来一切都是在幕后自动发生,但是如果数据库的IP地址出局或超时怎么办?

Mas*_*ase 0

谷歌没有在这里透露后端使用什么来提供数据库服务,但我的假设是:

  • 它使用虚拟 IP 将流量路由到主连接器,因此当主连接器发生故障时,备份将开始通告虚拟 IP,这将导致您的 TCP 连接失败。

该注释表示您的mysqli.reconnectin是否php.ini必须启用,以允许您的 PHP 代码在发生故障时自动连接到备份 MySQL 连接器。在这里读

如果您的 mysqli.reconnect 已启用,那么您不必担心任何事情。

编辑:回答有关SQL事务的问题——当然,如果在编写SQL事务代码时不考虑事务期间连接可能随时断开的情况,那将会是一团糟,这种情况必须在代码中处理。当启用自动提交并且您不在事务中时,简单的自动重新连接几乎可以解决任何其他情况。