2012-11-15 48 views
0

我使用MySQL加萊拉wsrep得到同步複製後重新連接,這一部分它的啓動和運行MySQL代理HA無需節點故障

我需要安裝一個類型的代理來處理客戶端連接。由於集羣中的任何節點都可能發生故障,因此客戶端不會直接連接節點,而只能通過代理進行連接

目前我使用Galera負載平衡器,它可以工作,但有一個例外: 如果一個節點發生故障,所有通過代理連接到該節點的客戶端都會出現連接錯誤並需要重新連接。

我必須通過連接到代理,其中一些無法自動重新連接,並需要手動重新啓動服務器應用程序的控制。所以問題是如何強制代理自動將已連接的應用程序重定向到新的數據節點,而無需重新連接?

回答

1

有2個問題實際上是:

  1. GLBD發送大部分(不是全部),因爲默認情況下它使用「最少連接」平衡策略和故障節點的新連接,如果節點接受的TCP連接,然後將其將它自連接將是短暫的,它會具有至少但從GLBD點加載。所以它只適用於節點崩潰的情況。使用循環平衡策略,以確保最終的應用程序會連接到一個工作的服務器或使用GLB-1.0.0beta可使用mysql客戶端輪詢服務器狀態並做出更明智的決策。
  2. 一般來說,幾乎是不可能遷移的客戶端連接,而無需重新連接並重新驗證,因爲即使代理代表應用程序(這意味着代理可以驗證客戶端以同樣的方式的mysqld做的重新連接並重新驗證與服務器,或者它可以窺視並與服務器重放客戶端認證握手(這甚至不太可能)) - 即使畢竟,這幾乎是不可能重現的應用程序有崩潰的服務器在同一會話上下文(所以也沒有注意重新連接)