2011-09-12 79 views
2

這是我第一次使用mysql-proxy,我遇到了奇怪的行爲,我想知道社區是否已經解決了它。Mysql-Proxy不會故障轉移(?)

我有mysql-proxy(0.8.2)在amazon linux(在ec2)上連接到2個mysql服務器上運行。我的Java客戶端可以連接到代理和負載平衡工作正常。

我的問題是這樣的:我有一個連接(通過代理)到服務器A的客戶端。它工作很好,直到我測試故障切換。當我關閉服務器A和客戶端試圖執行簡單的INSERT命令(已建立的連接上),我期待的代理請求重定向到服務器B.但是我得到這個異常:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信鏈路故障。

在這種情況下,客戶端使用Java程序使用mysql-connector-java的5.1.17-bin.jar

任何想法如何解決這個還是我在這裏缺少什麼?

回答

0

下面是對這個問題的更新,以防其他人有同樣的問題。

似乎mysql-proxy會在客戶端連接到後端服務器時檢查其狀態。它不會對數據庫執行任何keepalive \ heartbeat。我試圖用lua腳本來強制這種行爲,但慘敗了。

潛在的選擇可能是使用HAProxy幷包含xinted mysqlchecks。我沒有親自嘗試過。我們最終可能會構建一個代理連接客戶端,該客戶端將包裝java.sql.Connection並適當地與mysql-proxy進行交互。

讓我知道如果你找到其他方法來實現上述。