美麗說數據庫架構變遷課件_第1頁
美麗說數據庫架構變遷課件_第2頁
美麗說數據庫架構變遷課件_第3頁
美麗說數據庫架構變遷課件_第4頁
美麗說數據庫架構變遷課件_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、美麗說數據庫架構變遷Web研發(fā)第21期:高性能數據庫應用之“美麗說”技術專場 http:/ 目錄一一. .武功秘籍 - - 向上擴展向上擴展& &向外擴展向外擴展二二. .很久很久以前很久很久以前 - - mysqlmysql主從架構主從架構三三. .禍起蕭墻禍起蕭墻 - - 按功能分配機器按功能分配機器四四. .涇渭分明涇渭分明 - - 讀寫分離讀寫分離五五. .雙劍合璧雙劍合璧 - mysql- mysql主從主從+memcache+memcache六六. .三足鼎立三足鼎立 - - mysqlmysql主從主從+memcech+redis+memcech+redis七七.

2、 .分身有術分身有術 - - 按業(yè)務分庫按業(yè)務分庫八八. .殺手锏殺手锏 - - 水平分表水平分表九九. .未雨綢繆未雨綢繆 - - 異地機房異地機房十十. .他山之石他山之石 - - 工具總結工具總結十一十一. .真相大白真相大白 - - 總結總結武功秘籍向上擴展&向外擴展 1 向上擴展&向外擴展 向上擴展 (Scale Up) 單機硬件升級 (擴展極限) 增加(或升級) CPU ,存儲設備升級,增加內存 . 更換更高端硬件 使用小型機和高端存儲 (上賊船) . 向外擴展 (Scale Out) 數據切分 (Sharding) - 分庫、分表 Hash 水平切分,Table垂

3、直切分. 數據拷貝復制多份 同步、異步 讀寫分離,多點服務利用 Cache 和 Search 等擴展數據層 通過與Cache 和 Search 的協(xié)作,增加數據層的擴展性 很久很久以前mysqlmysql主從架構主從架構 2.1 mysql主從架構app1 MLB 1 App cluster layerLoad balancer S S SMYSQL protocolwrDB source layerrepl簡單負載均衡器,實現了按權重,隨機等基本負載均衡算法數據庫主從架構,主庫(M)寫,所有的數據庫(M&S)讀LB 2 LB n app2appn禍起蕭墻按功能分配機器按功能分配機器

4、3.1 問題出現 3.1 問題出現Sql太慢慢了!前后臺數據庫混用 3.2 問題解決 解決方案表表結結構構優(yōu)優(yōu)化化索引索引優(yōu)優(yōu)化化查詢優(yōu)查詢優(yōu)化化架構優(yōu)化優(yōu)優(yōu)化化 3.3 架構變化MYSQL protocolDB source layerrepl按功能分配機器后臺&腳本app serversLoad balancers 前端app serversLoad balancers wrr M S S S S 3.4 總結 問題總結: 從庫io問題從庫cpu問題優(yōu)化表結構,索引,查詢。不要著急加機器,低碳生活從我做起 按功能將數據庫分開,提高內存使用率,變相增加內存涇渭分明讀寫分離讀寫分離 4

5、.1 問題出現主庫寫入慢寫入慢 4.2 架構變化MYSQL protocolDB source layerrepl數據庫讀寫分離后臺&腳本app serversLoad balancers 前端app serversLoad balancers wrr M S S S S 4.3 總結 問題總結:主庫cpu問題主庫io問題讀寫分離雙劍合璧mysqlmysql主從主從+memcache+memcache 5.1 問題出現從庫讀讀壓力大! 5.2 問題解決 解決方案加內存加內存( (96G) )加加緩緩存存( (memcache) )Mysql 配置配置優(yōu)優(yōu)化化減少從減少從庫庫io操作操作

6、 5.3 架構變化MYSQL protocolDB source layerread_1/write_3Insert&delete&updateread_2一致性hash前端app serversMemcached layerLoad balancers M S S給應用添加讀cache 5.3 總結 問題總結:增加cache從庫io問題加內存三足鼎立mysqlmysql主從主從+memcache+redis+memcache+redis 6.1 問題出現 6.1 問題出現 主庫寫入慢寫入慢從庫延延遲遲 6.2 問題解決 解決方案Memery 引擎到引擎到cache加寫加寫緩緩

7、存存(redis)減少主減少主庫庫io操作操作 6.3 架構變化MYSQL protocolDB source layerread_1/write_3/writesread_2前端app serversMemcached + redis Load balancers M S Smemcache一致性hashredis 取模hashwriteswrite給應用添加寫cache 6.4 總結 問題總結:主庫io問題加cache,合并寫操作分身有術按業(yè)務分庫按業(yè)務分庫 7.1 問題出現 問題雜志社上線寫雙雙倍讀1.3倍數據庫大小600G 6.2 問題解決 解決方案按按業(yè)務業(yè)務分分庫庫減少主減少主庫庫

8、io操作操作 7.3 架構變化MYSQL protocolDB source layerread_1/write_3/writesInsert&delete&updateread_2一致性hash& 按模hashwrites業(yè)務1業(yè)務2前端app serversMemcached + redis Load balancers M S S M S S按功能分庫 7.3 架構變化前臺業(yè)務1后臺應用 B黑洞數據庫transformer前臺業(yè)務2 M S S M S S S S S使用黑洞同步數據 6.4 總結 問題總結:主庫io問題按業(yè)務拆分數據庫,將寫壓力分散殺手锏水平分表

9、水平分表 8.1 問題出現單表4億億行數據200G空間占用 8.2 問題解決 解決方案sharding減少從減少從庫庫io操作操作 8.3 架構變化MYSQL protocolDB source layer業(yè)務1pk:050000pk:50000100000pk:最新的Query paserQuery routerResust sortResult mergeconnection managementHA management r美麗說內部代號:storageload blancerwrite_1write_2MssMssMss水平分表-擴展讀操作 8.3 架構變化MYSQL protocol

10、DB source layer業(yè)務1 Storagerwrite_2write_1取模分配pk:050000pk:50000100000pk:最新的MssMssMss水平分表-擴展寫操作 8.3 架構變化MYSQL protocolDB source layer業(yè)務1 Storageread_2write_3write_1read_1/write_2Meta表:中心字典pk:050000pk:50000100000pk:最新的MssMssMssMss增加meta表,方便運維,數據重平衡 8.4 總結 問題總結:Sharding(水平分表),將數據盡量裝入內存從庫io問題未雨綢繆異地機房異地機房

11、 9.1 問題出現 問題 改善用戶體驗 降低風險 9.2 異地機房A地前臺業(yè)務1B地前臺業(yè)務1repl雙主主鍵奇數遞增1,3,5 主鍵偶數遞增2,4,6 同步代理選擇性同步Memcached + redis Memcached + redis M S S M S S雙主結構(對稱) 9.2 異地機房A地B地repl主鍵1,4,7 主鍵2,5,8 M S S M S S M S SC地主鍵3,6,9 環(huán)形結構他山之石工具總結工具總結 10.1 工具總結 Mysql相關 Mysqlslap Mysqlsla Mysqlreport Mysqlproxy percona-toolkit Sysbench Transfer Relayfetch percona-xtrabackup Mydumper innotop 10.1 工具總結 操作系統(tǒng)相關真相大白總結總結 11 總結Io問題寫讀主庫1.減少寫sql數量(合并

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論