您好,登錄后才能下訂單哦!
下文給大家帶來proxy負載均衡及讀寫分離詳解,希望能夠給大家在實際運用中帶來一定的幫助,負載均衡涉及的東西比較多,理論也不多,網上有很多書籍,今天我們就用億速云在行業內累計的經驗來做一個解答。
如何在客戶端應用的時候,路由語句.
一般用兩種方法
1: 直接在PHP的mysql類做判斷,最簡單,不用額外加軟件
比如discuz論壇.
2:用集群中間件
比如官方的mysql_proxy
,還有國產的中間件 amoeba
原理:不管用了多少mysql,程序都是和proxy通信
實戰: mysql 讀寫分離 ,mysql_proxy實現
下載安裝mysql_proxy:
http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit.tar.gz
解壓后, 該目錄包含已經編譯好的二進制文件,將解壓后的目錄移動到/user/local/
查看幫助文檔:
先要proxy連接各mysql,先做個負載均衡:
在另一臺機器上連接proxy(注意,端口是4040):
然后就可以操作數據庫了,打開多個客戶端,連接proxy 4040,分別insert數據:
(注意:proxy的均衡不是語句方面的均衡,而是連接上的均衡。比如:連接若干個連接池,當前連的是哪個mysql就操作哪個。語句層面的均衡,容易帶來數據不一致)
讀寫分離:
(-b 192.168.0.199:指定199云服務器mysql為寫。-r 192.168.0.200:3306:指定200服務器mysql為讀。-s /user/locl/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua:指定讀寫分析腳本)
注意,腳本中有個設置,它有個最小,最大連接,:
實戰: mysql 讀寫分離 ,mysql_proxy實現
下載安裝mysql_proxy:
http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit.tar.gz
解壓后, 該目錄包含已經編譯好的二進制文件 .
1: 利用mysql_proxy實現負載均衡
執行mysql_proxy
./mysql-proxy-path/bin/mysql-proxy \
--proxy-backend-addresses=192.168.1.199:3306 \
--proxy-backend-addresses=192.168.1.200:3306
2: 連接mysql_proxy,用mysql客戶就可以,因為proxy是mysql的前端代理
注意proxy的端口是4040
mysql -h “proxy的IP” -P 4040 -u username -p password
在連接上之后,做sql查詢,卻總是往某1臺mysql server來發送------負載均衡沒體現出來?
答: 不是沒體現出來.
均衡不是體現在sql語句,一會請求mysqlA服,一會請求mysqlB服.
均衡是體現”連接”的均衡上.,
mysql_proxy會把連接mysql服務器的tcp/IP連接緩存進連接池,以提高性能.
在緩存池里, 緩存的連接大致是平均分配在每臺mysql服務器上.
但具體的每一個連接,始終連某臺服務器.
./bin/mysql-proxy \
--proxy-backend-addresses=192.168.1.199:3306 \
--proxy-read-only-backend-addresses=192.168.1.200:3306 \
--proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
簡寫:
./bin/mysql-proxy -b=192.168.0.199:3306 -r=192.168.0.200:3306 -s=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
看了以上關于proxy負載均衡及讀寫分離詳解,如果大家還有什么地方需要了解的可以在億速云行業資訊里查找自己感興趣的或者找我們的專業技術工程師解答的,億速云技術工程師在行業內擁有十幾年的經驗了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。