簡體   English   中英

如何在故障轉移期間延遲ActiveRecord MySQL重新連接

[英]How to delay ActiveRecord MySQL reconnect during a failover

我們有一個Rails 3.1.3應用程序,它通過mysql2 gem連接到MySQL。 標准配置。 我們也有少數Resque工人從事后台工作。 我們指向的數據庫主機名(在database.yml中)實際上是一個虛擬IP(VIP),它指向node1或node2。

在后台,兩個MySQL服務器(節點)在高可用性配置中設置。 數據文件夾通過DRBD復制,其中mysqld僅在“活動”節點上運行。 當集群檢測到node1不可用時,它將在node2上啟動mysqld並將VIP指向它。

如果您想了解有關特定設置的更多詳細信息,它與本MySQL HA Cookbook非常相似。

問題是:發生故障轉移時,大約需要30-60秒才能完成,在此期間沒有MySQL服務器可用。 當前正在運行的任何Resque作業嚴重失敗。

這是一個問題:延遲后如何通知ActiveRecord重新連接? 也許嘗試使用退避計時器進行幾次重新連接? 還是有更好的方法來解決這個問題?

您的高可用性設置將在將來給您帶來無窮的痛苦。 使用數據庫層復制而不是塊設備層復制; MySQL Proxy就是為此目的而設計的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM