SQL Server負載平衡分割讀取/寫入操作

SQL Server負載平衡分割讀取/寫入操作

您好,我們有 3 個 SQL Server 2014 標準版節點,其中一個作為主節點,另一個作為使用事務複製資料庫的主節點複製

我們希望使用另外2個節點來進行讀取操作,減少主節點的負載。

我們如何在像 HA Proxy 這樣的負載平衡器中進行配置,將讀取操作與寫入分開,並僅將讀取操作傳送到節點 2 和 3?或者我們應該使用其他允許這樣做的負載平衡器嗎?

答案1

我們如何在像 HA Proxy 這樣的負載平衡器中進行配置,將讀取操作與寫入分開,並僅將讀取操作傳送到節點 2 和 3?

一點也不。負載平衡器不可能知道 SQL Server 連線中發生了什麼,也無法從邏輯上理解什麼可以被認為是唯讀、只寫或混合(這是寫入),尤其是當負載平衡器無法及時預測時。我可以連接到 sql server,啟動事務,執行讀取操作,然後開始寫入 - 在決定負載平衡時,您如何知道我打算寫入?如果不及時展望,就沒有合乎邏輯的方法來處理這個問題。

通常完成此操作的方法是在應用程式層級上設定不同的連接,並讓應用程式決定使用哪一個。畢竟,人們會假設程式設計師足夠聰明,知道他們是否打算建立一個僅用於讀取的連接,或者實際上可能在稍後階段在同一連接/事務上進行寫入。

相關內容