Percona XtraDB Cluster 5.7 搭配 HAProxy

一魔策、PerconaDB的特性(來源于:http://blog.csdn.net/chszs/article/details/20205047)

1)查詢速度更快鄙早,數(shù)據(jù)的一致性更好

2)服務(wù)器運行及其穩(wěn)定

3)可以延遲分片,或者避免分片

4)需要支付的費用比MySQL低

5)在優(yōu)化和管理方面花費的時間更少

6)更高的正常運行時間

7)不排除猜測

還有一些特性:

1)數(shù)量更多的INFORMATION_SCHEMA表

2)數(shù)量更多的全局性能參數(shù)(Global Performance)和狀態(tài)計數(shù)器(Status Counters)

3)每個索引性能計數(shù)器

4)每個用戶性能計數(shù)器

5)每個客戶端性能計數(shù)器

6)高精度進程列表時序

7)快速校驗算法

8)緩沖池預(yù)加載

9)支持閃存緩沖

10)可從不同的服務(wù)器導(dǎo)入表

開始配置host

node1? 192.168.20.145

node2? 192.168.20.146

node3? 192.168.20.147

安裝相關(guān)apt源

wget? ?https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb

sudo dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb

sudo? apt-get? update

安裝pxc

sudo apt-get install percona-xtradb-cluster-full-57

修改/etc/my.cnf配置文件冲秽,其他兩臺節(jié)點需要修改server_id和wsrep_node_address

[mysqld]

server_id=127 #其他節(jié)點需要修改datadir=/data/mysql

socket=/data//mysql/mysql.sock

pid_file=/var/lib/mysql/mysql.pid

user=mysql

port=3306

default_storage_engine=InnoDB

character_set_server=utf8

log-error=/var/lib/mysql/mysql-error.log

slow_query_log=1

slow_query_log_file=/var/lib/mysql/mysql-slow.log

#INNODB/XtraDB

innodb_buffer_pool_size=1610612736

innodb_log_file_size=104857600

#PXC

wsrep_provider=/usr/lib64/libgalera_smm.so

wsrep_cluster_address=gcomm://192.168.20.145,192.168.20.146,192.168.20.147

binlog_format=ROW

innodb_autoinc_lock_mode=2

wsrep_node_address=192.168.20.145 #其他節(jié)點需要修改

wsrep_sst_method=xtrabackup-v2  #同步工具

wsrep_cluster_name=my_mysql_cluster

wsrep_sst_auth="sstuser:s3cret"  #SST連接的用戶名和密碼

創(chuàng)建數(shù)據(jù)存儲目錄

mkdir-p /data/mysql/

chown? mysql.mysql /data/mysql/

在node1啟動PXC服務(wù)

/etc/init.d/mysql bootstrap-pxc   #成功后密碼在日志文件里查到

SET PASSWORD = PASSWORD('123qwe');? #登陸MySQL修改密碼只洒。

在node1MySQL中創(chuàng)建SST同步用戶

GRANT PROCESS,RELOAD,LOCK TABLES,REPLICATION CLIENT ON *.* TO'sstuser'@'%'IDENTIFIED BY's3cret';

flush privileges;

State Snapshot Transfer 是可以讓one node (donor) 通過數(shù)據(jù)拷貝升級至joining node (joiner)纵苛。

一個新節(jié)點加入至集群中玉吁,需要同步數(shù)據(jù)照弥,那么SST可以傳輸數(shù)據(jù),讓新節(jié)點成為集群的一部分进副。

SST的三個有效方法:mysqldump, rsync andxtrabackup这揣。不過多解釋,目前最好用的是xtrabackup

在node2,node3啟動MySQL服務(wù)

/etc/init.d/mysql start

查看集群狀態(tài)

show status like? 'wsrep%';

然后測試數(shù)據(jù)寫入和查詢。

配置HAProxy 負載平衡

上述完成了 3 臺 Cluster 設(shè)定给赞,接著所有的 Application 服務(wù)都需要直接跟此 Cluster 溝通机打,為了完成此需求,我們必須將 HAProxy 安裝在其中一臺伺服器來做負載平衡塞俱,今天會介紹兩種設(shè)定方式姐帚,第一種是採用?round robin?方式吏垮,意思就是說所有的 Application 都可以連上并且寫入資料到三臺機器障涯,這狀況其實沒有錯誤,但是如果同時寫入三臺機器膳汪,難免會出現(xiàn)?optimistic locking?而產(chǎn)生 rollback唯蝶,如果可以確定不會產(chǎn)生 conflict,其實這方桉是不錯的遗嗽。第2種設(shè)定方式就是只寫入單一 Node粘我,但是可以讀取三臺機器,也就是?insert,?update?都是在同一臺 Node 完成痹换,所以 Application 不用擔(dān)心會產(chǎn)生 rollback 情形征字。第1種設(shè)定在大部份的狀況底下都是可以運作很好的,所以其實也不用擔(dān)心娇豫。

底下是?/etc/haproxy/haproxy.cfg 設(shè)置:

global

log /dev/log? ? local0

log /dev/log? ? local1 notice

chroot /var/lib/haproxy

stats socket /run/haproxy/admin.sock mode 660 level admin

stats timeout 30s

user haproxy

group haproxy

daemon

# Default SSL material locations

ca-base /etc/ssl/certs

crt-base /etc/ssl/private

# Default ciphers to use on SSL-enabled listening sockets.

# For more information, see ciphers(1SSL). This list is from:

#? https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/

ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS

ssl-default-bind-options no-sslv3

defaults

log? ? global

mode? ? http

option? httplog

option? dontlognull

timeout connect 5000

timeout client? 50000

timeout server? 50000

errorfile 400 /etc/haproxy/errors/400.http

errorfile 403 /etc/haproxy/errors/403.http

errorfile 408 /etc/haproxy/errors/408.http

errorfile 500 /etc/haproxy/errors/500.http

errorfile 502 /etc/haproxy/errors/502.http

errorfile 503 /etc/haproxy/errors/503.http

errorfile 504 /etc/haproxy/errors/504.http

listen mysql_3306

bind? 0.0.0.0:3306

mode? tcp

option tcpka

balance? ? roundrobin

#將此server命名為mysql_01,每隔3000ms檢測一個健康狀態(tài),如果檢測3次都失敗,將此server剔除,在離線的狀態(tài)下,只要檢測1次成功,就讓其上線;

server mysql_01 192.168.20.145:3306 check inter 3000 rise 1 maxconn 4000 fall 3

server mysql_02 192.168.20.146:3306 check inter 3000 rise 1 maxconn 4000 fall 3

server mysql_02 192.168.20.147:3306 check inter 3000 rise 1 maxconn 4000 fall 3

listen state? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #使用單獨輸出,不需要frontedn調(diào)用:定義haproxy的狀態(tài)統(tǒng)計頁面;

bind *:8888? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #監(jiān)聽的地址;

mode http? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #http 7層工作模式:對應(yīng)用層數(shù)據(jù)做深入分析,因此支持7層的過濾匙姜、處理、轉(zhuǎn)換等機制;

stats enable? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #開啟統(tǒng)計頁面輸出;

stats hide-version? ? ? ? ? ? ? ? ? ? ? ? #隱藏狀態(tài)頁面版本號;

stats uri /haproxyadmin?stats? ? ? ? ? ? #指定狀態(tài)頁的訪問路徑;

stats auth admin:admin? ? ? ? ? ? ? ? ? ? #基于用戶名,密碼驗證;

stats admin if TRUE? ? ? ? ? ? ? ? ? ? ? #驗證通過時運行登錄;


上面步驟全部成功冯痢,請打開瀏覽器在 URL 輸入http://192.168.20.148:8888/haproxyadmin?stats?在輸入配置文件配置的用戶名和密碼就可以HAProxy Status 頁面氮昧,看到狀態(tài),就是代表設(shè)定成功浦楣。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末袖肥,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子振劳,更是在濱河造成了極大的恐慌椎组,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件历恐,死亡現(xiàn)場離奇詭異庐杨,居然都是意外死亡,警方通過查閱死者的電腦和手機夹供,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門灵份,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人哮洽,你說我怎么就攤上這事填渠。” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵氛什,是天一觀的道長莺葫。 經(jīng)常有香客問我,道長枪眉,這世上最難降的妖魔是什么捺檬? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮贸铜,結(jié)果婚禮上堡纬,老公的妹妹穿的比我還像新娘。我一直安慰自己蒿秦,他們只是感情好烤镐,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著棍鳖,像睡著了一般炮叶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上渡处,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天镜悉,我揣著相機與錄音,去河邊找鬼医瘫。 笑死侣肄,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的登下。 我是一名探鬼主播茫孔,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼被芳!你這毒婦竟也來了缰贝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤畔濒,失蹤者是張志新(化名)和其女友劉穎剩晴,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體侵状,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡赞弥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了趣兄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绽左。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖艇潭,靈堂內(nèi)的尸體忽然破棺而出拼窥,到底是詐尸還是另有隱情戏蔑,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布鲁纠,位于F島的核電站总棵,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏改含。R本人自食惡果不足惜情龄,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望捍壤。 院中可真熱鬧骤视,春花似錦、人聲如沸白群。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帜慢。三九已至,卻和暖如春唯卖,著一層夾襖步出監(jiān)牢的瞬間粱玲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工拜轨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抽减,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓橄碾,卻偏偏與公主長得像卵沉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子法牲,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容