Oracle發(fā)布《 面向大規(guī)模可伸縮網(wǎng)站基礎(chǔ)設(shè)施的MySQL參考架構(gòu) 》白皮書,針對將MySQL用作數(shù)據(jù)存儲的不同類型和不同規(guī)模的網(wǎng)站給出了推薦的拓撲結(jié)構(gòu)。
根據(jù)分別提供4類服務(wù)——用戶和會話管理、電子商務(wù)、分析類應(yīng)用 (多結(jié)構(gòu)數(shù)據(jù))和CMS(元數(shù)據(jù))——的網(wǎng)站的規(guī)模和可用性要求(如下表所示),這份白皮書給出了4個參考架構(gòu)。
請注意,這里給出的指導(dǎo)方針只是基本建議,實際應(yīng)用中需要根據(jù)讀寫模式、負載平衡和所用的緩存機制等因素進行調(diào)整。
小型(Small)網(wǎng)站參考架構(gòu)
這一參考架構(gòu)可用于上述4類網(wǎng)站的所有小型實現(xiàn)??梢允褂肕ySQL Replication來制作數(shù)據(jù)的副本以支持備份和分析。
中型(Medium)網(wǎng)站參考架構(gòu)
在這種情況下,推薦針對不同類型的活動選擇獨立的基礎(chǔ)設(shè)施,考慮每個MySQL服務(wù)器最多支持8個應(yīng)用服務(wù)器,如果因伸縮性需求應(yīng)用服務(wù)器數(shù)量增加,則添加更多的MySQL從服務(wù)器。
為滿足會話管理網(wǎng)站和電子商務(wù)網(wǎng)站的高可用性要求,可以使用 Linux心跳(Heartbeat) 和半同步復(fù)制。CMS網(wǎng)站通常對讀操作的向外擴展有更高要求,假定每個MySQL從服務(wù)器最多可以處理3000個并發(fā)用戶,白皮書建議為每個MySQL主服務(wù)器添加20-30個從服務(wù)器。CMS系統(tǒng)可將數(shù)據(jù)保存在一個SAN中,或者保存在連接到該服務(wù)器的分布式設(shè)備中。
會話管理網(wǎng)站和CMS網(wǎng)站推薦使用Memcached,這有助于減輕應(yīng)用服務(wù)器和MySQL服務(wù)器的負擔。
分析類網(wǎng)站的拓撲結(jié)構(gòu)簡單一些,1個主服務(wù)器加3個從服務(wù)器就能解決問題。
大規(guī)模(Large)網(wǎng)站參考架構(gòu)
針對大規(guī)模網(wǎng)站,白皮書推薦使用MySQL Geographic Replication來進行跨數(shù)據(jù)中心的數(shù)據(jù)庫復(fù)制,這種方式支持跨越地理上分離的集群進行異步復(fù)制。
會話管理網(wǎng)站和電子商務(wù)網(wǎng)站應(yīng)該使用集群,白皮書聲稱“4個數(shù)據(jù)節(jié)點,1秒可以支持6000個會話(頁面點擊),其中每次頁面點擊生成8–12個數(shù)據(jù)庫操作”。大規(guī)模CMS網(wǎng)站使用的配置與中型網(wǎng)站類似,只是必要時需要多添加一些從服務(wù)器。針對分析類應(yīng)用,這里引入了一個數(shù)據(jù)提煉(Data Refinery)單元,用于數(shù)據(jù)的清理和組織。
超大規(guī)模(Extra Large)網(wǎng)站參考架構(gòu)
針對社交網(wǎng)站,白皮書也給出了相應(yīng)建議。它聲稱“網(wǎng)絡(luò)上流量最大的10個網(wǎng)站有9個部署了MySQL,其中包括Google、Facebook和YouTube”,但是沒有說明這些網(wǎng)站用MySQL干什么,不過眾所周知的是,LinkedIn成功應(yīng)用了MySQL。
社交網(wǎng)站的拓撲結(jié)構(gòu)利用了中型和大規(guī)模網(wǎng)站中實現(xiàn)的概念,包括專用應(yīng)用服務(wù)器、Memcached和數(shù)據(jù)提煉單元, 但為支持寫操作的向外擴展引入了分片(Shard)。MySQL集群被用于用戶的認證和查找,當“用于查找的鍵(key)不止1個”時,直接讀寫相應(yīng)的分片。
MySQL主服務(wù)器和從服務(wù)器的推薦規(guī)格如下:
- 8–16個x86-64位CPU核心(MySQL 5.5及以上)。
- 4–8個x86 -64位CPU核心(MySQL 5.1及更早版本)。
- 比活動數(shù)據(jù)多3–10倍的內(nèi)存。
- Linux、Solaris或Windows操作系統(tǒng)。
- 最少4塊磁盤,8–16塊磁盤能增加I/O密集型應(yīng)用的性能。
- 支持電池供電高速緩存的硬件RAID。
- 推薦使用RAID 10。如果負載為讀密集型,RAID 5也是合適的。
- 2個網(wǎng)卡和2個供電單元用作冗余。
另外,白皮書還有一些針對MySQL集群和數(shù)據(jù)存儲設(shè)備的建議,再就是用于監(jiān)控、備份和集群管理的解決方案。
查看英文原文 : MySQL Reference Architectures for Small to Extra Large Websites
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
