從小型網站到超大規模網站的MySQL參考架構


Oracle發布《面向大規模可伸縮網站基礎設施的MySQL參考架構》白皮書,針對將MySQL用作數據存儲的不同類型和不同規模的網站給出了推薦的拓撲結構。

根據分別提供4類服務——用戶和會話管理、電子商務、分析類應用 (多結構數據)和CMS(元數據)——的網站的規模和可用性要求(如下表所示),這份白皮書給出了4個參考架構。

請注意,這里給出的指導方針只是基本建議,實際應用中需要根據讀寫模式、負載平衡和所用的緩存機制等因素進行調整。

小型(Small)網站參考架構

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

中型(Medium)網站參考架構

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

為滿足會話管理網站和電子商務網站的高可用性要求,可以使用Linux心跳(Heartbeat)和半同步復制。CMS網站通常對讀操作的向外擴展有更高要求,假定每個MySQL從服務器最多可以處理3000個並發用戶,白皮書建議為每個MySQL主服務器添加20-30個從服務器。CMS系統可將數據保存在一個SAN中,或者保存在連接到該服務器的分布式設備中。

會話管理網站和CMS網站推薦使用Memcached,這有助於減輕應用服務器和MySQL服務器的負擔。

分析類網站的拓撲結構簡單一些,1個主服務器加3個從服務器就能解決問題。

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

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

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

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

針對社交網站,白皮書也給出了相應建議。它聲稱“網絡上流量最大的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

------------------------------------我是分割線---------------------------------------

轉自:http://www.infoq.com/cn/news/2013/03/MySQL-Reference-Architectures


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com