使用HAProxy實現sql server讀庫的負載平衡

來源:互聯網
上載者:User

標籤:

前置條件

使用sqlserver的發布訂閱功能實現讀寫分離,並建立多個讀庫。

本文的負載平衡是針對多個讀庫而言的。

 

測試環境

vmware 10 64位

windows server 2008 R2

sql server 2008

centOS 6.6

haproxy 1.5

 

虛擬機器設定

(1)虛擬機器1:安裝centos, 並安裝HAProxy。ip為:172.16.1.1。作為負載平衡器。

(2)虛擬機器2:安裝windows server 2008 R2, 並安裝sql server 2008。ip為:172.16.1.2,作為資料庫伺服器1。

(3)虛擬機器3:複製虛擬機器2。ip為:172.16.1.6。作為資料庫伺服器2。

如:

 

haproxy配置

這裡最重要的是對haproxy進行配置,設定檔如下:

global          maxconn 5120          chroot /usr/local/haproxy          uid 99          gid 99          daemon          quiet          nbproc  2          pidfile /usr/local/haproxy/haproxy.pid  defaults          log     global          mode    http          option  httplog          option  dontlognull          log 127.0.0.1 local3          retries 3          option redispatch          maxconn 2000          contimeout      50000          clitimeout      50000          srvtimeout      50000     listen mssql :1433         mode tcp         balance roundrobin         server mssql1 172.16.1.2:1433 check weight 1 check       server mssql2 172.16.1.6:1433 check weight 1 check      listen stats :8888         mode http         transparent         stats uri / haproxy-stats         stats realm Haproxy \ statistic  

 

 

 測試

(1) 建立一個測試表:

CREATE TABLE [dbo].[table1]( [f1] [nchar](10) NULL) ON [PRIMARY]

 

(2)為了看到負載平衡的結果,請將兩個讀庫中table1表的資料設定為不一樣

 

(3)串連至172.16.1.1(負載平衡器),使用以下查詢語句進行查詢。

SELECT TOP 1000 [f1]  FROM [test1].[dbo].[table1]

需要在每次查詢前先中斷連線,然後再建立與sql server的串連,如所示:

 

特別說明

(1)若是不重建立立串連的話,則每次得到的結果是一樣的,因為sqlserver的用戶端採用了資料庫連接池技術,在沒有主動地關閉的情況下,TCP串連會一直被保持著。

(2)中斷連線之後,再重新串連一次的話,則得到的結果是不一樣的。

 

 

 

本文的介紹的方法僅在測試環境中通過,尚未在正式環境中使用。

 

haproxy的安裝請見:

http://www.cnblogs.com/dehai/p/4885016.html

 

使用HAProxy實現sql server讀庫的負載平衡

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.