「mysql优化专题」高可用性、负载均衡的mysql集群解决方案(12)
不可避免的是,使用MySQL時(shí)隨著時(shí)間的增長(zhǎng),用戶量以及數(shù)據(jù)量的逐漸增加,訪問量更是劇增,最終將會(huì)使MySQL達(dá)到某個(gè)瓶頸,那么MySQL的性能將會(huì)大大降低。怎么辦?前面已經(jīng)講過十一篇優(yōu)化方案,接下來我將講解MySQL高可用負(fù)載均衡這一方法。其中實(shí)現(xiàn)高可用負(fù)載均衡的方法有很多,例如LVS+keepalived組合實(shí)現(xiàn)、haproxy+keepalived組合實(shí)現(xiàn)等等,目前用mycat的越來越多,這里我們采用HAProxy + MyCat組合實(shí)現(xiàn)MySQL高可用負(fù)載均衡這一技術(shù)。
一、為什么需要mysql集群?
一個(gè)龐大的分布式系統(tǒng)的性能瓶頸中,最脆弱的就是連接。連接有兩個(gè),一個(gè)是客戶端與后端的連接,另一個(gè)是后端與數(shù)據(jù)庫的連接。簡(jiǎn)單如圖下兩個(gè)藍(lán)色框框(其實(shí),這張圖是我在悟空問答解答別人的時(shí)候用Windows的自帶畫板畫的,勿噴啊..)
版權(quán)歸作者所有,哈哈在客戶端與后端中可以利用類似nginx的負(fù)載均衡解決(本專題是mysql優(yōu)化,后面出高并發(fā)專題再詳細(xì)講解連接1的負(fù)載均衡),而數(shù)據(jù)庫層是最脆弱的一層,一般在應(yīng)用設(shè)計(jì)時(shí)在上游就需要把請(qǐng)求攔截掉,數(shù)據(jù)庫層只承擔(dān)“能力范圍內(nèi)”的訪問請(qǐng)求,所以,我們通過在服務(wù)層引入隊(duì)列和緩存,讓最底層的數(shù)據(jù)庫高枕無憂。
但是,如果請(qǐng)求激增,還是有大量的查詢壓力到MySQL怎么辦呢?
無所不能的程序員還是要想辦法解決MySQL的瓶頸。這時(shí)候,集群出現(xiàn)了。在后端與數(shù)據(jù)庫中我們可以利用類似mycat的負(fù)載均衡實(shí)現(xiàn)mysql集群,提高mysql的總體性能。(可用組合很多,如LVS+keepalived組合、haproxy+keepalived組合)
一、基本軟件 版本
操作系統(tǒng):CentOS-6.6-x86_64
JDK版本:jdk1.7.0_72
HAProxy版本:haproxy-1.5.16.tar.gz
MyCat版本:Mycat-server-1.4-release-20151019230038-linux.tar.gz
MySQL版本:mysql-5.6.26.tar.gz
二、部署環(huán)境規(guī)劃:
三、集群部署架構(gòu)圖如下:
圖解說明:
HAProxy負(fù)責(zé)將請(qǐng)求分發(fā)到MyCat上,起到負(fù)載均衡的作用,同時(shí)HAProxy也能檢測(cè)到MyCat是否存活,HAProxy只會(huì)將請(qǐng)求轉(zhuǎn)發(fā)到存活的MyCat上。如果一臺(tái)MyCat服務(wù)器宕機(jī),HAPorxy轉(zhuǎn)發(fā)請(qǐng)求時(shí)不會(huì)轉(zhuǎn)發(fā)到宕機(jī)的MyCat上,所以MyCat依然可用。
五、MyCat節(jié)點(diǎn)2的部署
MyCat主機(jī)2(edu-mycat-02,192.168.1.204)(上一篇主從復(fù)制部署,這么快就忘了的可以看看,文末有連接)
注意:edu-mycat-01(192.168.1.203)和 edu-mycat-02(192.168.1.204) 中都要加上(或更新)主機(jī)名映射配置。
# vi /etc/hosts
192.168.1.203 edu-mycat-01
192.168.1.204 edu-mycat-02
192.168.1.205 edu-mysql-01
192.168.1.206 edu-mysql-02
六、配置MyCat狀態(tài)檢查服務(wù)(在MyCat節(jié)點(diǎn)主機(jī)上配置)
MyCat服務(wù)主機(jī)(edu-mycat-01、edu-mycat-02)上需要增加mycat服務(wù)的狀態(tài)檢測(cè)腳本,并開放相應(yīng)的檢測(cè)端口,以提供給HAProxy對(duì)MyCat的服務(wù)狀態(tài)進(jìn)行檢測(cè)判斷。可以使用xinetd來實(shí)現(xiàn),通過xinetd,HAProxy可以用httpchk來檢測(cè)MyCat的存活狀態(tài)。(xinetd即extended internet daemon,xinetd是新一代的網(wǎng)絡(luò)守護(hù)進(jìn)程服務(wù)程序,又叫超級(jí)Internet服務(wù)器。經(jīng)常用來管理多種輕量級(jí)Internet服務(wù)。xinetd提供類似于inetd+tcp_wrapper的功能,但是更加強(qiáng)大和安全。xinetd為linux系統(tǒng)的基礎(chǔ)服務(wù))
1、如果xinetd還沒有安裝,可使用如下命令安裝:
# yum install xinetd
2、檢查/etc/xinetd.conf的末尾是否有 includedir /etc/xinetd.d ,沒有就加上
# vi /etc/xinetd.conf
3、檢查 /etc/xinetd.d 目錄是否存在,不存在剛創(chuàng)建
# mkdir /etc/xinetd.d/
4、增加MyCat存活狀態(tài)檢測(cè)服務(wù)配置
# touch /etc/xinetd.d/mycat_status
# vi /etc/xinetd.d/mycat_status
增加以下內(nèi)容:
service mycat_status
{
flags = REUSE
## 使用該標(biāo)記的socket_type為stream,需要設(shè)置wait為no
socket_type = stream ## 封包處理方式,Stream為TCP數(shù)據(jù)包
port = 48700 ## 服務(wù)監(jiān)聽端口
wait = no ## 表示不需等待,即服務(wù)將以多線程的方式運(yùn)行
user = root ## 執(zhí)行此服務(wù)進(jìn)程的用戶
server =/usr/local/bin/mycat_status ## 需要啟動(dòng)的服務(wù)腳本
log_on_failure += USERID ## 登錄失敗記錄的內(nèi)容
disable = no ## 要啟動(dòng)服務(wù),將此參數(shù)設(shè)置為no
}
5、添加 /usr/local/bin/mycat_status 服務(wù)腳本
# touch /usr/local/bin/mycat_status
# vi /usr/local/bin/mycat_status
增加以下內(nèi)容:
#!/bin/bash
#/usr/local/bin/mycat_status.sh
# This script checks if a mycat server is healthy running on localhost.
# It will return:
# "HTTP/1.x 200 OK " (if mycat is running smoothly)
# "HTTP/1.x 503 Internal Server Error " (else)
mycat=`/usr/local/mycat/bin/mycat status | grep 'not running' | wc -l`
if [ "$mycat" = "0" ]; then
/bin/echo -e "HTTP/1.1 200 OK "
else
/bin/echo -e "HTTP/1.1 503 Service Unavailable "
fi
6、給新增腳本賦予可執(zhí)行權(quán)限
# chmod a+x /usr/local/bin/mycat_status
7、在 /etc/services 中加入 mycat_status 服務(wù)
# vi /etc/services
在末尾加入:
mycat_status 48700/tcp # mycat_status
保存后,重啟xinetd服務(wù)
# service xinetd restart
8、驗(yàn)證mycat_status服務(wù)是否成功啟動(dòng)
# netstat -antup|grep 48700
能看到上圖這樣的信息,說明服務(wù)配置成功。
9、MyCat服務(wù)主機(jī)的防火墻上打開 48700端口
# vi /etc/sysconfig/iptables
增加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 48700 -j ACCEPT
保存后重啟防火墻
# service iptables restart
腳本測(cè)試:
# /usr/local/bin/mycat_status
真長(zhǎng)!中場(chǎng)休息會(huì),一起左三圈右三圈吧。看不下去的可以先收藏關(guān)注哈。
七、HAProxy介紹(官網(wǎng):http://www.haproxy.org/)
HAProxy 是一款提供高可用性、負(fù)載均衡以及基于TCP(第四層)和HTTP(第七層)應(yīng)用的代理軟件,支持虛擬主機(jī),它是免費(fèi)、快速并且可靠的一種解決方案。
HAProxy目前主要有三個(gè)版本:1.4、1.5、1.6,CentOS6.6自帶的RPM包為1.5的。
HAProxy1.5版開始,支持SSL、DDoS防護(hù)等功能,可看官網(wǎng)說明:
version 1.5 : the most featureful version, supports SSL, IPv6, keep-alive, DDoS protection, etc...
MyCat官方推薦使用HAProxy做MyCat的高可用負(fù)載均衡代理。
八、HAProxy的安裝(192.168.1.191)
1、下載(或上傳) haproxy-1.5.16.tar.gz 到 /usr/local/src,解壓安裝
[root@edu-haproxy-01 src]# cd /usr/local/src/
#wget http://www.haproxy.org/download/1.5/src/haproxy-1.5.16.tar.gz
[root@edu-haproxy-01 src]# tar -zxvf haproxy-1.5.16.tar.gz
[root@edu-haproxy-01 src]# cd haproxy-1.5.16
2、如需了解安裝注意點(diǎn),可查看HAProxy的軟件說明
[root@edu-haproxy-01 haproxy-1.5.16]# less README
3、安裝編譯所需的依賴包
# yum install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
4、編譯
# make TARGET=linux2628 ARCH=x86_64 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 PREFIX=/usr/local/haproxy
## TARGET是指定內(nèi)核版本,高于2.6.28的建議設(shè)置為linux2628,Linux操作系統(tǒng)內(nèi)核版本查看命令# uname -r, ARCH指定系統(tǒng)架構(gòu),openssl pcre zlib 這三個(gè)包需要安裝不然不支持
5、創(chuàng)建安裝目錄 /usr/local/haproxy
# mkdir /usr/local/haproxy
6、執(zhí)行安裝
[root@edu-haproxy-01 haproxy-1.5.16]# make install PREFIX=/usr/local/haproxy
install -d "/usr/local/haproxy/sbin"
install haproxy "/usr/local/haproxy/sbin"
install -d "/usr/local/haproxy/share/man"/man1
install -m 644 doc/haproxy.1 "/usr/local/haproxy/share/man"/man1
install -d "/usr/local/haproxy/doc/haproxy"
for x in configuration architecture haproxy-en haproxy-fr; do
install -m 644 doc/$x.txt "/usr/local/haproxy/doc/haproxy" ;
done
7、創(chuàng)建配置文件目錄
# mkdir -p /usr/local/haproxy/conf
# mkdir -p /etc/haproxy/
8、從配置文件模版復(fù)制配置文件,并添加配置文件軟連接
# cp /usr/local/src/haproxy-1.5.16/examples/haproxy.cfg /usr/local/haproxy/conf/
# ln -s /usr/local/haproxy/conf/haproxy.cfg /etc/haproxy/haproxy.cfg
9、拷貝錯(cuò)誤頁面,并添加目錄軟連接(HTTP模式選配)
# cp -r /usr/local/src/haproxy-1.5.16/examples/errorfiles /usr/local/haproxy/
# ln -s /usr/local/haproxy/errorfiles /etc/haproxy/errorfiles
10、拷貝開機(jī)啟動(dòng)文件,并賦予可執(zhí)行權(quán)限
# cp /usr/local/src/haproxy-1.5.16/examples/haproxy.init /etc/rc.d/init.d/haproxy
# chmod +x /etc/rc.d/init.d/haproxy
11、添加haproxy命令腳本軟連接
# ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin
12、設(shè)置HAProxy開機(jī)啟動(dòng)
# chkconfig --add haproxy
# chkconfig haproxy on
九、HAProxy配置MyCat負(fù)載均衡集群
HAProxy支持TCP(第四層)和HTTP(第七層)應(yīng)用的代理,本節(jié)課程我們使用HAProxy來做MyCat的負(fù)載均衡代理使用的是TCP模式。在4層模式下HAProxy僅在客戶端和服務(wù)器之間轉(zhuǎn)發(fā)雙向流量。HAProxy配置簡(jiǎn)單,擁有非常不錯(cuò)的服務(wù)器健康檢查功能,當(dāng)其代理的后端服務(wù)器出現(xiàn)故障,HAProxy會(huì)自動(dòng)將該服務(wù)器摘除,故障恢復(fù)后會(huì)自動(dòng)將該服務(wù)器加入進(jìn)來。
1、修改haproxy.cfg 配置文件
具體參數(shù)說明可參考官方配置文檔 /usr/local/haproxy/doc/haproxy/configuration.txt
或GitHub連接:http://cbonte.github.io/haproxy-dconv/configuration-1.5.html
# vi /usr/local/haproxy/conf/haproxy.cfg
## global配置中的參數(shù)為進(jìn)程級(jí)別的參數(shù),通常與其運(yùn)行的操作系統(tǒng)有關(guān)
global
log 127.0.0.1 local0 info ## 定義全局的syslog服務(wù)器,最多可以定義2個(gè)
### local0是日志設(shè)備,對(duì)應(yīng)于/etc/rsyslog.conf中的配置,默認(rèn)回收info的日志級(jí)別
#log 127.0.0.1 local1 info
chroot /usr/share/haproxy ## 修改HAProxy的工作目錄至指定的目錄并在放棄權(quán)限之前執(zhí)行
### chroot() 操作,可以提升 haproxy 的安全級(jí)別
group haproxy ## 同gid,不過這里為指定的用戶組名
user haproxy ## 同uid,但這里使用的為用戶名
daemon ## 設(shè)置haproxy后臺(tái)守護(hù)進(jìn)程形式運(yùn)行
nbproc 1 ## 指定啟動(dòng)的haproxy進(jìn)程個(gè)數(shù),
### 只能用于守護(hù)進(jìn)程模式的haproxy;默認(rèn)為止啟動(dòng)1個(gè)進(jìn)程,
### 一般只在單進(jìn)程僅能打開少數(shù)文件描述符的場(chǎng)中中才使用多進(jìn)程模式
maxconn 4096 ## 設(shè)定每個(gè)haproxy進(jìn)程所接受的最大并發(fā)連接數(shù),
### 其等同于命令行選項(xiàng)"-n","ulimit-n"自動(dòng)計(jì)算的結(jié)果正式參照從參數(shù)設(shè)定的
# pidfile /var/run/haproxy.pid ## 進(jìn)程文件(默認(rèn)路徑 /var/run/haproxy.pid)
node edu-haproxy-01 ## 定義當(dāng)前節(jié)點(diǎn)的名稱,用于HA場(chǎng)景中多haproxy進(jìn)程共享同一個(gè)IP地址時(shí)
description edu-haproxy-01 ## 當(dāng)前實(shí)例的描述信息
## defaults:用于為所有其他配置段提供默認(rèn)參數(shù),這默認(rèn)配置參數(shù)可由下一個(gè)"defaults"所重新設(shè)定
defaults
log global ## 繼承g(shù)lobal中l(wèi)og的定義
mode http ## mode:所處理的模式 (tcp:四層 , http:七層 , health:狀態(tài)檢查,只會(huì)返回OK)
### tcp: 實(shí)例運(yùn)行于純tcp模式,在客戶端和服務(wù)器端之間將建立一個(gè)全雙工的連接,
#### 且不會(huì)對(duì)7層報(bào)文做任何類型的檢查,此為默認(rèn)模式
### http:實(shí)例運(yùn)行于http模式,客戶端請(qǐng)求在轉(zhuǎn)發(fā)至后端服務(wù)器之前將被深度分析,
#### 所有不與RFC模式兼容的請(qǐng)求都會(huì)被拒絕
### health:實(shí)例運(yùn)行于health模式,其對(duì)入站請(qǐng)求僅響應(yīng)“OK”信息并關(guān)閉連接,
#### 且不會(huì)記錄任何日志信息 ,此模式將用于相應(yīng)外部組件的監(jiān)控狀態(tài)檢測(cè)請(qǐng)求
option httplog
retries 3
option redispatch ## serverId對(duì)應(yīng)的服務(wù)器掛掉后,強(qiáng)制定向到其他健康的服務(wù)器
maxconn 2000 ## 前端的最大并發(fā)連接數(shù)(默認(rèn)為2000)
### 其不能用于backend區(qū)段,對(duì)于大型站點(diǎn)來說,可以盡可能提高此值以便讓haproxy管理連接隊(duì)列,
### 從而避免無法應(yīng)答用戶請(qǐng)求。當(dāng)然,此最大值不能超過“global”段中的定義。
### 此外,需要留心的是,haproxy會(huì)為每個(gè)連接維持兩個(gè)緩沖,每個(gè)緩存的大小為8KB,
### 再加上其他的數(shù)據(jù),每個(gè)連接將大約占用17KB的RAM空間,這意味著經(jīng)過適當(dāng)優(yōu)化后 ,
### 有著1GB的可用RAM空間時(shí)將維護(hù)40000-50000并發(fā)連接。
### 如果指定了一個(gè)過大值,極端場(chǎng)景中,其最終所占據(jù)的空間可能會(huì)超過當(dāng)前主機(jī)的可用內(nèi)存,
### 這可能會(huì)帶來意想不到的結(jié)果,因此,將其設(shè)定一個(gè)可接受值放為明智絕對(duì),其默認(rèn)為2000
timeout connect 5000ms ## 連接超時(shí)(默認(rèn)是毫秒,單位可以設(shè)置us,ms,s,m,h,d)
timeout client 50000ms ## 客戶端超時(shí)
timeout server 50000ms ## 服務(wù)器超時(shí)
## HAProxy的狀態(tài)信息統(tǒng)計(jì)頁面
listen admin_stats
bind :48800 ## 綁定端口
stats uri /admin-status ##統(tǒng)計(jì)頁面
stats auth admin:admin ## 設(shè)置統(tǒng)計(jì)頁面認(rèn)證的用戶和密碼,如果要設(shè)置多個(gè),另起一行寫入即可
mode http
option httplog ## 啟用日志記錄HTTP請(qǐng)求
## listen: 用于定義通過關(guān)聯(lián)“前端”和“后端”一個(gè)完整的代理,通常只對(duì)TCP流量有用
listen mycat_servers
bind :3306 ## 綁定端口
mode tcp
option tcplog ## 記錄TCP請(qǐng)求日志
option tcpka ## 是否允許向server和client發(fā)送keepalive
option httpchk OPTIONS * HTTP/1.1 Host: www ## 后端服務(wù)狀態(tài)檢測(cè)
### 向后端服務(wù)器的48700端口(端口值在后端服務(wù)器上通過xinetd配置)發(fā)送 OPTIONS 請(qǐng)求
### (原理請(qǐng)參考HTTP協(xié)議) ,HAProxy會(huì)根據(jù)返回內(nèi)容來判斷后端服務(wù)是否可用.
### 2xx 和 3xx 的響應(yīng)碼表示健康狀態(tài),其他響應(yīng)碼或無響應(yīng)表示服務(wù)器故障。
balance roundrobin ## 定義負(fù)載均衡算法,可用于"defaults"、"listen"和"backend"中,默認(rèn)為輪詢方式
server mycat_01 192.168.1.203:8066 check port 48700 inter 2000ms rise 2 fall 3 weight 10
server mycat_02 192.168.1.204:8066 check port 48700 inter 2000ms rise 2 fall 3 weight 10
## 格式:server [:[port]] [param*]
### serser 在后端聲明一個(gè)server,只能用于listen和backend區(qū)段。
### 為此服務(wù)器指定的內(nèi)部名稱,其將會(huì)出現(xiàn)在日志及警告信息中
### 此服務(wù)器的IPv4地址,也支持使用可解析的主機(jī)名,但要在啟動(dòng)時(shí)需要解析主機(jī)名至響應(yīng)的IPV4地址
### [:[port]]指定將客戶端連接請(qǐng)求發(fā)往此服務(wù)器時(shí)的目標(biāo)端口,此為可選項(xiàng)
### [param*]為此server設(shè)定的一系列參數(shù),均為可選項(xiàng),參數(shù)比較多,下面僅說明幾個(gè)常用的參數(shù):
#### weight:權(quán)重,默認(rèn)為1,最大值為256,0表示不參與負(fù)載均衡
#### backup:設(shè)定為備用服務(wù)器,僅在負(fù)載均衡場(chǎng)景中的其他server均不可以啟用此server
#### check:啟動(dòng)對(duì)此server執(zhí)行監(jiān)控狀態(tài)檢查,其可以借助于額外的其他參數(shù)完成更精細(xì)的設(shè)定
#### inter:設(shè)定監(jiān)控狀態(tài)檢查的時(shí)間間隔,單位為毫秒,默認(rèn)為2000,
##### 也可以使用fastinter和downinter來根據(jù)服務(wù)器端專題優(yōu)化此事件延遲
#### rise:設(shè)置server從離線狀態(tài)轉(zhuǎn)換至正常狀態(tài)需要檢查的次數(shù)(不設(shè)置的情況下,默認(rèn)值為2)
#### fall:設(shè)置server從正常狀態(tài)轉(zhuǎn)換至離線狀態(tài)需要檢查的次數(shù)(不設(shè)置的情況下,默認(rèn)值為3)
#### cookie:為指定server設(shè)定cookie值,此處指定的值將會(huì)在請(qǐng)求入站時(shí)被檢查,
##### 第一次為此值挑選的server將會(huì)被后續(xù)的請(qǐng)求所選中,其目的在于實(shí)現(xiàn)持久連接的功能
#### maxconn:指定此服務(wù)器接受的最大并發(fā)連接數(shù),如果發(fā)往此服務(wù)器的連接數(shù)目高于此處指定的值,
#####其將被放置于請(qǐng)求隊(duì)列,以等待其他連接被釋放
注意:多節(jié)點(diǎn)部署時(shí)node 、 description的值要做相應(yīng)調(diào)整。
2、根據(jù)以上HAProxy配置文件要求做以下配置
(1)添加haproxy用戶組和用戶
# groupadd haproxy
# useradd -g haproxy haproxy
(2)創(chuàng)建chroot運(yùn)行的路徑
# mkdir /usr/share/haproxy
(3)防火墻中打開3306端口和48800端口
# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 48800 -j ACCEPT
重啟防火墻
# service iptables restart
3、開啟rsyslog的haproxy日志記錄功能
默認(rèn)情況下 haproxy是不記錄日志的,如果需要記錄日志,還需要配置系統(tǒng)的syslog,在linux系統(tǒng)中是rsyslog服務(wù)。syslog服務(wù)器可以用作一個(gè)網(wǎng)絡(luò)中的日志監(jiān)控中心,rsyslog是一個(gè)開源工具,被廣泛用于Linux系統(tǒng)以通過TCP/UDP協(xié)議轉(zhuǎn)發(fā)或接收日志消息。安裝配置rsyslog服務(wù):
# yum install rsyslog ## 沒安裝的情況下執(zhí)行安裝
# vi /etc/rsyslog.conf
把 $ModLoad imudp 和 $UDPServerRun 514前面的 # 去掉
$ModLoad imudp ## 是模塊名,支持UDP協(xié)議
$UDPServerRun 514
##允許514端口接收使用UDP和TCP協(xié)議轉(zhuǎn)發(fā)過來的日志,
##而rsyslog在默認(rèn)情況下,正是在514端口監(jiān)聽UDP
確認(rèn) #### GLOBAL DIRECTIVES #### 段中是否有 $IncludeConfig /etc/rsyslog.d/*.conf沒有則增加上此配置,增加后的效果:
# cd /etc/rsyslog.d/ ## rsyslog服務(wù)會(huì)來此目錄加載配置
# touch haproxy.conf ## 創(chuàng)建haproxy的日志配置文件
# vi /etc/rsyslog.d/haproxy.conf
增加以下內(nèi)容:
local0.* /var/log/haproxy.log
&~
##如果不加上面的的"&~"配置則除了在/var/log/haproxy.log中寫入日志外,也會(huì)寫入/var/log/message文件中
配置保存后重啟rsyslog服務(wù)
# service rsyslog restart
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
(等到HAProxy服務(wù)啟動(dòng)后,就能在/var/log/haproxy.log中看到日志了)
4、配置系統(tǒng)內(nèi)核的IP包轉(zhuǎn)發(fā)功能
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
使配置生效
# sysctl -p
5、啟動(dòng)HAProxy
# service haproxy start
# ps -ef | grep haproxy
haproxy 23921 1 0 23:27 ? 00:00:00 /usr/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid
root 23924 23179 0 23:27 pts/1 00:00:00 grep haproxy
6、使用MySQL客戶端通過HAProxy連接MyCat
E:MySQL-5.6.17-winx64in>mysql -uuser2 -proncoo.2 -h192.168.1.191 -P3306
mysql> show databases;
mysql> use rc_schema2;
mysql> show tables;
mysql> select * from edu_user;
寫數(shù)據(jù)測(cè)試
mysql> insert into edu_user (userName, pwd) values('吳水成', 'roncoo.com');
然后查看MySQL中的數(shù)據(jù)庫插入及數(shù)據(jù)同步情況。
8、登錄HAProxy的狀態(tài)信息統(tǒng)計(jì)頁面
http://192.168.1.191:48800/admin-status
用戶名和密碼都是admin,對(duì)應(yīng)的haproxy.cfg配置片段
已完結(jié)專題(關(guān)注后查看):
【mysql優(yōu)化專題】【多線程/池專題】【架構(gòu)技術(shù)專題】
更新中專題(關(guān)注后查看):
【dubbo專題】【dubbo源碼專題】【JVM專題】【HTTP協(xié)議專題】【設(shè)計(jì)模式專題】
【高并發(fā)專題】【架構(gòu)技術(shù)專題】【netty專題】【數(shù)據(jù)結(jié)構(gòu)專題】【redis專題】
總結(jié)
以上是生活随笔為你收集整理的「mysql优化专题」高可用性、负载均衡的mysql集群解决方案(12)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS自定义转场动画实战讲解
- 下一篇: java HashMap和LinkedH