小網站到企業網站MySQL參考架構

時間 :13:47 取得文章短網址

文章分類 : Business Tech, Cloud, SMB

Oracle發佈《面向大規模可伸縮網站基礎設施的MySQL參考架構》白皮書,針對將MySQL用作數據存儲的不同類型和不同規模的網站給出了推薦的拓撲結構。根據分別提供4類服務——用家和會話管理、電子商務、分析類應用 (多結構數據)和CMS(元數據)——的網站的規模和可用性要求(如下表所示),這份白皮書給出了4個參考架構。

mysql1

請注意,這裡給出的指導方針來自《MySQL Reference Architectures for Small to Extra Large Websites》只是基本建議,實際應用中需要根據讀寫模式、負載平衡和所用的緩存機制等因素進行調整。

小型(Small)網站參考架構

mysql2

這一參考架構可用於上述4類網站的所有小型實現。可以使用MySQL Replication來製作數據的副本以支持備份和分析。

中型(Medium)網站參考架構

mysql3

在這種情況下,推薦針對不同類型的活動選擇獨立的基礎設施,考慮每個MySQL服務器最多支持8個應用服務器,如果因伸縮性需求應用服務器數量增加,則添加更多的MySQL從服務器。

為滿足會話管理網站和電子商務網站的高可用性要求,可以使用Linux心跳(Heartbeat)和半同步複製。CMS網站通常對讀操作的向外擴展有更高要求,假定每個MySQL從服務器最多可以處理3000個並發用家,白皮書建議為每個MySQL主服務器添加20-30個從服務器。CMS系統可將數據保存在一個SAN中,或者保存在連接到該服務器的分佈式設備中。
會話管理網站和CMS網站推薦使用Memcached,這有助於減輕應用服務器和MySQL服務器的負擔。
分析類網站的拓撲結構簡單一些,1個主服務器加3個從服務器就能解決問題。

大規模(Large)網站參考架構

mysql4

針對大規模網站,白皮書推薦使用MySQL Geographic Replication來進行跨數據中心的數據庫複製,這種方式支持跨越地理上分離的集群進行異步複製。

會話管理網站和電子商務網站應該使用集群,白皮書聲稱「4個數據節點,1秒可以支持6000個會話(頁面點擊),其中每次頁面點擊生成8–12個數據庫操作」。大規模CMS網站使用的配置與中型網站類似,只是必要時需要多添加一些從服務器。針對分析類應用,這裡引入了一個數據提煉(Data Refinery)單元,用於數據的清理和組織。

超大規模(Extra Large)網站參考架構

mysql5

針對社交網站,白皮書也給出了相應建議。它聲稱「網絡上流量最大的10個網站有9個部署了MySQL,其中包括Google、Facebook和YouTube」,但是沒有說明這些網站用MySQL幹什麼,不過眾所周知的是,LinkedIn成功應用了MySQL。

社交網站的拓撲結構利用了中型和大規模網站中實現的概念,包括專用應用服務器、Memcached和數據提煉單元, 但為支持寫操作的向外擴展引入了分片(Shard)。MySQL集群被用於用家的認證和查找,當「用於查找的鍵(key)不止1個」時,直接讀寫相應的分片。

MySQL主服務器和從服務器的推薦規格如下:

  • 8–16個x86-64位CPU核心(MySQL 5.5及以上)。
  • 4–8個x86 -64位CPU核心(MySQL 5.1及更早版本)。
  • 比活動數據多3–10倍的記憶體。
  • Linux、Solaris或Windows操作系統。
  • 最少4塊磁盤,8–16塊磁盤能增加I/O密集型應用的性能。
  • 支持電池供電高速緩存的硬件RAID。
  • 推薦使用RAID 10。如果負載為讀密集型,RAID 5也是合適的。
  • 2個網卡和2個供電單元用作冗餘。

另外,白皮書還有一些針對MySQL集群和數據存儲設備的建議,再就是用於監控、備份和集群管理的解決方案。
查看英文原文:MySQL Reference Architectures for Small to Extra Large Websites

你可能會對以下文章有興趣:

Leave a Reply

Your email address will not be published.