十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
MySQL是一個(gè)高速度、高性能、多線程、開放源代碼,建立在客戶/服務(wù)器(Client/Server)結(jié)構(gòu)上的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)。它始于1979年,最初是MichaelWidenius為瑞典TcX公司創(chuàng)建的UNIREG數(shù)據(jù)庫(kù)系統(tǒng),當(dāng)時(shí)的UNIREG沒(méi)有SQL(StructuredQueryLanguage結(jié)構(gòu)化查詢語(yǔ)言)接口,限制了它的應(yīng)用。

寧海ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
1996年5月,Widenius開發(fā)出了MySQL的最初版本,開始在Internet上公開發(fā)行。MySQL的開發(fā)人員從一開始就一直關(guān)注它的性能,為此不惜特性集,直到今天,MySQL依然保持本色,以高速度高性能為首要原則。隨著時(shí)間的推移,MySQL也加入了大型數(shù)據(jù)庫(kù)產(chǎn)品的高級(jí)特性,如存儲(chǔ)過(guò)程、視圖、觸發(fā)器等,使其在企業(yè)級(jí)數(shù)據(jù)庫(kù)系統(tǒng)中開始被部署應(yīng)用[1]。
2008年10月,SUN公司收購(gòu)了MySQLAB公司,開始進(jìn)入開源領(lǐng)域。隨著重量級(jí)操作系統(tǒng)Solaris的開源,SUNMySQL在數(shù)據(jù)庫(kù)市場(chǎng)占有的份額將會(huì)進(jìn)一步提高。因此,在生產(chǎn)環(huán)境中部署具有負(fù)載均衡功能的MySQL服務(wù)器集群,對(duì)于提高企業(yè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的速度、穩(wěn)定性及可伸縮性具有很大的現(xiàn)實(shí)意義,也可以有效降低應(yīng)用系統(tǒng)的投資成本。
一、負(fù)載均衡基本思路
在一個(gè)服務(wù)器集群中,盡可能的平均負(fù)載量。通常做法是在服務(wù)器前端設(shè)置一個(gè)負(fù)載均衡器(專門的硬件設(shè)備),MySQL的負(fù)載均衡,通常都離不開數(shù)據(jù)分片(把數(shù)據(jù)分割成小塊,存儲(chǔ)到不同的db節(jié)點(diǎn)中)、復(fù)制等操作。
負(fù)載均衡的主要貢獻(xiàn),除了均發(fā)數(shù)據(jù)庫(kù)請(qǐng)求,還可提供管理讀/寫策略。在分發(fā)請(qǐng)求時(shí)則確定那些節(jié)點(diǎn)可寫,可讀,隨即將請(qǐng)求發(fā)送到指定節(jié)點(diǎn)上執(zhí)行操作。
二、實(shí)現(xiàn)負(fù)載均衡的方式:
1、mysql讀寫分離:
mysql復(fù)制時(shí),產(chǎn)生了多個(gè)數(shù)據(jù)副本(備庫(kù)),為減少服務(wù)器壓力,備庫(kù)用于處理讀操作,主庫(kù)可同時(shí)處理讀寫是mysql集群實(shí)現(xiàn)讀寫分離的常用策略。
由于備庫(kù)的復(fù)制是異步的,無(wú)法實(shí)時(shí)同步,讀寫分離的主要難點(diǎn)也在于備庫(kù)上的臟數(shù)據(jù)。通常如果使用備庫(kù)進(jìn)行讀,一般對(duì)數(shù)據(jù)的實(shí)時(shí)性要求不能太高。對(duì)此,mysql提供了幾種常見的讀寫分離方式,例如基于查詢的讀寫分離、基于臟數(shù)據(jù)、基于會(huì)話等,有興趣可繼續(xù)研究。
mysql設(shè)置的讀寫分離,減少了主庫(kù)的請(qǐng)求量,將大量讀的操作發(fā)送給備庫(kù),實(shí)現(xiàn)負(fù)載均衡。
2、修改DNS
在高并發(fā)負(fù)載均衡(一)——企業(yè)架構(gòu)分析和DNS中詳細(xì)介紹了DNS以及DNS如何實(shí)現(xiàn)負(fù)載,簡(jiǎn)言之,通過(guò)n個(gè)服務(wù)器IP指定到一個(gè)域名,根據(jù)請(qǐng)求的不同標(biāo)識(shí)特征,將請(qǐng)求發(fā)送給不同的IP服務(wù)器進(jìn)行處理。
3、引入中間件
mysql官方提供了一個(gè)mysql負(fù)載的中間件,mysql_proxy,也需要在服務(wù)器上進(jìn)行安裝,修改配置文件(mysql的服務(wù)器IP),實(shí)質(zhì)與nginx類似,也是一個(gè)代理服務(wù)器。
4、利用mysql復(fù)制分流查詢操作
利用mysql的主從復(fù)制可以有效的分流更新操作和查詢操作,具體的實(shí)現(xiàn)是一個(gè)主服務(wù)器,承擔(dān)更新操作,多臺(tái)從服務(wù)器,承擔(dān)查詢操作,主從之間通過(guò)復(fù)制實(shí)現(xiàn)數(shù)據(jù)的同步。多臺(tái)從服務(wù)器一方面用來(lái)確??捎眯裕环矫婵梢詣?chuàng)建不同的索引滿足不同查詢的需要。
對(duì)于主從之間不需要復(fù)制全部表的情況,可以通過(guò)在主的服務(wù)器上搭建一個(gè)虛擬的從服務(wù)器,將需要復(fù)制到從服務(wù)器的表設(shè)置成blackhole引擎,然后定義replicate-do-table參數(shù)只復(fù)制這些表,這樣就過(guò)濾出需要復(fù)制的binlog,減少了傳輸binlog的帶寬。因?yàn)榇罱ǖ奶摂M的從服務(wù)器只起到過(guò)濾binlog的作用,并沒(méi)有實(shí)際紀(jì)錄任何數(shù)據(jù),所以對(duì)主數(shù)據(jù)庫(kù)服務(wù)器的性能影響也非常的有限。
通過(guò)復(fù)制分流查詢的存在的問(wèn)題是主數(shù)據(jù)庫(kù)上更新頻繁或者網(wǎng)絡(luò)出現(xiàn)問(wèn)題的時(shí)候,主從之間的數(shù)據(jù)可能存在差異,造成查詢結(jié)果的異議,應(yīng)用在設(shè)計(jì)的時(shí)候需要有所考慮。
5、采用分布式數(shù)據(jù)庫(kù)架構(gòu)
mysql從5.0.3開始支持分布式事務(wù),當(dāng)前分布式事務(wù)只對(duì)Innodb存儲(chǔ)引擎支持。分布式的數(shù)據(jù)庫(kù)架構(gòu)適合大數(shù)據(jù)量,負(fù)載高的情況,有良好的擴(kuò)展性和高可用性。通過(guò)在多臺(tái)服務(wù)器之間分布數(shù)據(jù)實(shí)現(xiàn)在多臺(tái)服務(wù)器之間的負(fù)載平均,提高了訪問(wèn)的執(zhí)行效率。具體實(shí)現(xiàn)的時(shí)候,可以使用mysql的Cluster功能(NDB引擎)或者自己編寫程序來(lái)實(shí)現(xiàn)全局事務(wù)。
先做主從同步,達(dá)到讀寫分離,在主庫(kù)中寫,讀的時(shí)候可以從它的幾個(gè)從庫(kù)內(nèi)讀,分發(fā)的辦法有幾種,可以負(fù)載設(shè)備,也可以lvs,或者可以更改你的程序配置數(shù)據(jù)庫(kù)指向
mysql數(shù)據(jù)庫(kù)負(fù)載均衡 一般多用于讀負(fù)載,??lvs 負(fù)載均衡,keepalived 高可用性。
LVS軟件負(fù)載均衡器
LVS(LinuxVirtual Server)是由章文嵩博士主導(dǎo)開發(fā)的一款開源軟件,可以實(shí)現(xiàn)Linux平臺(tái)下的基于網(wǎng)絡(luò)層的負(fù)載均衡軟件。典型的基本架構(gòu)圖如圖所示:
LVS集群采用IP負(fù)載均衡技術(shù)和基于內(nèi)容請(qǐng)求分發(fā)技術(shù)。
LVS集群采用基于IP負(fù)載均衡技術(shù)和基于內(nèi)容請(qǐng)求分發(fā)技術(shù)。當(dāng)客戶端有請(qǐng)求時(shí),首先將請(qǐng)求包傳送到Load Balance,然后Load Balance從后面的Real Servers中按照一定的算法策略選取一臺(tái)Real Server,比如Real Server1,然后把請(qǐng)求包發(fā)送給Real Server1進(jìn)行處理。對(duì)所有用戶而言,面向用戶的服務(wù)器端IP地址,只有一臺(tái),稱之為VirtualIP Address。