2013-12-10 37 views
1

我有一個多主MySQL集羣,我想通過使用負載均衡器將來自我的Rails項目的讀/寫查詢分發到多個服務器。通過ActiveRecord將查詢分發到多個數據庫

問題是,就我所見,Rails會嘗試在服務器的生命週期內保持連接對象的活動狀態。但是,HAProxy僅在每個查詢打開新連接時分發查詢。這不是我想要的。我希望以每個查詢爲基礎進行分發,而不是每個連接基礎。

我的服務器在每個查詢的基礎上向我的服務器分發rails詢問有什麼選擇?

注意:這是一個高可用性的情況,我們不確定每個sql服務器是否在任何時候都啓動。這就是我使用haproxy的原因。

回答

0

haproxy在第4層上執行負載平衡,並且您需要了解第7層上了解mysql協議的內容。 haproxy不會幫助。

「MySQL負載平衡器」試圖做到這一點,我不知道是否有人在生產中使用它。在這個article中,您可以看到有關使用TrafficScript的一些技巧,最後我不認爲有任何穩定的軟件可以實現您想要的功能。

+0

Trafficscript很有趣。我目前正在使用手工連接池,其中池中的每個連接指向不同的數據庫,負載通過帶寬進行平衡。有時[NIH](http://en.wikipedia.org/wiki/Not_invented_here)效果不錯:-) – nurettin