gpt4 book ai didi

mysql - 如何在故障转移期间延迟 ActiveRecord MySQL 重新连接

转载 作者:行者123 更新时间:2023-11-29 14:34:42 24 4
gpt4 key购买 nike

我们有一个 Rails 3.1.3 应用程序,通过 mysql2 gem 连接到 MySQL。标准配置。我们还有一些 Resque 工作人员执行后台工作。我们指向的数据库主机名(在database.yml中)实际上是指向node1或node2的虚拟IP(VIP)。

在幕后,两个 MySQL 服务器(节点)设置为高可用性配置。数据文件夹通过 DRBD 复制,mysqld 仅在“事件”节点上运行。当集群检测到node1不可用时,会在node2上启动mysqld,并将VIP指向它。

如果您想了解有关特定设置的更多详细信息,它与this MySQL HA cookbook非常相似。 .

问题如下:发生故障转移时,大约需要 30-60 秒才能完成,在此期间没有可用的 MySQL 服务器。当前正在运行的任何 Resque 作业都会严重失败。

问题如下:我们如何告诉 ActiveRecord 在延迟后重新连接?也许尝试使用退避计时器多次重新连接?或者有更好的方法来处理这个问题吗?

最佳答案

您的 HA 设置将在未来给您带来无限的痛苦。使用数据库层复制代替 block 设备层复制; MySQL Proxy就是为了做到这一点而设计的。

关于mysql - 如何在故障转移期间延迟 ActiveRecord MySQL 重新连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9321226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com