https://www.openresty.com.cn/lor_README_zh.html
https://moonbingbing.gitbooks.io/openresty-best-practices/content/postgres/sql_inject.html
http://www.cnblogs.com/huxianglin/p/7263964.html
MariaDB Galera Cluster集群優(yōu)缺點(diǎn)
Mysql數(shù)據(jù)庫集群
五大常見的MySQL高可用方案
Galera Cluster:一種新型的高一致性MySQL集群架構(gòu)
Galera Cluster for MySQL是一套基于同步復(fù)制的多主MySQL集群解決方案娃循。
原理:
Galera本質(zhì)是一個wsrep提供者(provider),運(yùn)行依賴于wsrep的API接口裸删。Wsrep API定義了一系列應(yīng)用回調(diào)和復(fù)制調(diào)用庫,來實(shí)現(xiàn)事務(wù)數(shù)據(jù)庫同步寫集(writeset)復(fù)制以及相似應(yīng)用邑时。目的在于從應(yīng)用細(xì)節(jié)上實(shí)現(xiàn)抽象的稻艰,隔離的復(fù)制诽偷。雖然這個接口的主要目標(biāo)是基于認(rèn)證的多主復(fù)制,但同樣適用于異步和同步的主從復(fù)制用押。
包括:
Galera Cluster for MySQL肢簿、Percona XtraDB Cluster、MariaDB Galera Cluster。
優(yōu)點(diǎn):
同步復(fù)制
多主服務(wù)器的拓?fù)浣Y(jié)構(gòu)
可以在任意節(jié)點(diǎn)上進(jìn)行讀寫
自動剔除故障節(jié)點(diǎn)
自動加入新節(jié)點(diǎn)
真正行級別的并發(fā)復(fù)制
客戶端連接跟操作單臺MySQL數(shù)據(jù)庫的體驗(yàn)一致
缺點(diǎn):
由于同一個事務(wù)需要在集群的多臺機(jī)器上執(zhí)行池充,因此網(wǎng)絡(luò)傳輸及并發(fā)執(zhí)行會導(dǎo)致性能上有一定的消耗桩引。所有機(jī)器上都存儲著相同的數(shù)據(jù),全冗余收夸。若一臺機(jī)器既作為主服務(wù)器坑匠,又作為備份服務(wù)器,出現(xiàn)樂觀鎖導(dǎo)致rollback的概率會增大卧惜,編寫程序時要小心厘灼。不支持的SQL:LOCK / UNLOCK TABLES / GET_LOCK(), RELEASE_LOCK()…不支持XA Transaction
PXC的優(yōu)點(diǎn)
服務(wù)高可用;
數(shù)據(jù)同步復(fù)制(并發(fā)復(fù)制)咽瓷,幾乎無延遲设凹;
多個可同時讀寫節(jié)點(diǎn),可實(shí)現(xiàn)寫擴(kuò)展茅姜,不過最好事先進(jìn)行分庫分表闪朱,讓各個節(jié)點(diǎn)分別寫不同的表或者庫,避免讓galera解決數(shù)據(jù)沖突钻洒;
新節(jié)點(diǎn)可以自動部署奋姿,部署操作簡單;
數(shù)據(jù)嚴(yán)格一致性素标,尤其適合電商類應(yīng)用胀蛮;
完全兼容MySQL;
雖然有這么多好處糯钙,但也有些局限性:
只支持InnoDB引擎;
所有表都要有主鍵退腥;
不支持LOCK TABLE等顯式鎖操作任岸;
鎖沖突、死鎖問題相對更多狡刘;
不支持XA享潜;
集群吞吐量/性能取決于短板;
新加入節(jié)點(diǎn)采用SST時代價(jià)高嗅蔬;
存在寫擴(kuò)大問題剑按;
如果并發(fā)事務(wù)量很大的話,建議采用InfiniBand網(wǎng)絡(luò)澜术,降低網(wǎng)絡(luò)延遲艺蝴;
事實(shí)上,采用PXC的主要目的是解決數(shù)據(jù)的一致性問題鸟废,高可用是順帶實(shí)現(xiàn)的猜敢。因?yàn)镻XC存在寫擴(kuò)大以及短板效應(yīng),并發(fā)效率會有較大損失,類似semi sync replication機(jī)制缩擂。
快速體驗(yàn)Percona XtraDB Cluster(PXC)使用Keepalived+HAProxy實(shí)現(xiàn)MariaDB Galera Cluster高可用負(fù)載均衡
MariaDB Galera Cluster簡介及雙主HA實(shí)踐
其他高可用方案
Ubuntu 16.04 阿里云更新源
# [負(fù)載均衡的mariadb集群搭建]
Docker MariaDB 10.3 Galera Cluster 集群同步復(fù)制 多主 Docker Haproxy 負(fù)載均衡
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386] http://mirror.fibergrid.in/mariadbrepo/10.1/ubuntu xenial main'
sudo aptitude update
sudo aptitude search mariadb-server-10.3
sudo aptitude install mariadb-server-10.3
dpkg -L mariadb-server-10.3
sudo netstat anp | grep ssh