美丽说数据库架构变迁.ppt

上传人:小飞机 文档编号:6141098 上传时间:2023-09-28 格式:PPT 页数:52 大小:1.02MB
返回 下载 相关 举报
美丽说数据库架构变迁.ppt_第1页
第1页 / 共52页
美丽说数据库架构变迁.ppt_第2页
第2页 / 共52页
美丽说数据库架构变迁.ppt_第3页
第3页 / 共52页
美丽说数据库架构变迁.ppt_第4页
第4页 / 共52页
美丽说数据库架构变迁.ppt_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《美丽说数据库架构变迁.ppt》由会员分享,可在线阅读,更多相关《美丽说数据库架构变迁.ppt(52页珍藏版)》请在三一办公上搜索。

1、美丽说数据库架构变迁,Web研发王伟,第21期:高性能数据库应用之“美丽说”技术专场 http:/,目录,一.武功秘籍-向上扩展&向外扩展二.很久很久以前-mysql主从架构三.祸起萧墙-按功能分配机器四.泾渭分明-读写分离五.双剑合璧-mysql主从+memcache六.三足鼎立-mysql主从+memcech+redis七.分身有术-按业务分库八.杀手锏-水平分表九.未雨绸缪-异地机房十.他山之石-工具总结十一.真相大白-总结,武功秘籍,向上扩展&向外扩展,1 向上扩展&向外扩展,向上扩展(Scale Up)单机硬件升级(扩展极限)增加(或升级)CPU,存储设备升级,增加内存.更换更高端硬

2、件 使用小型机和高端存储(上贼船).向外扩展(Scale Out)数据切分(Sharding)-分库、分表 Hash 水平切分,Table垂直切分.数据拷贝复制多份 同步、异步 读写分离,多点服务利用 Cache 和 Search 等扩展数据层 通过与Cache 和 Search 的协作,增加数据层的扩展性,很久很久以前,mysql主从架构,2.1 mysql主从架构,app1,M,LB 1,App cluster layer,Load balancer,S,S,S,MYSQL protocol,w,r,DB source layer,repl,简单负载均衡器,实现了按权重,随机等基本负载均衡

3、算法,数据库主从架构,主库(M)写,所有的数据库(M&S)读,LB 2,LB n,app2,appn,祸起萧墙,按功能分配机器,3.1 问题出现,3.1 问题出现,Sql太慢了!前后台数据库混用,3.2 问题解决,解决方案,表结构优化,索引优化,查询优化,架构优化,优化,3.3 架构变化,MYSQL protocol,DB source layer,repl,按功能分配机器,后台&脚本app servers,Load balancers,前端app servers,Load balancers,w,r,r,M,S,S,S,S,3.4 总结,问题总结:,从库io问题,从库cpu问题,优化表结构,

4、索引,查询。不要着急加机器,低碳生活从我做起,按功能将数据库分开,提高内存使用率,变相增加内存,泾渭分明,读写分离,4.1 问题出现,主库写入慢,4.2 架构变化,MYSQL protocol,DB source layer,repl,数据库读写分离,后台&脚本app servers,Load balancers,前端app servers,Load balancers,w,r,r,M,S,S,S,S,4.3 总结,问题总结:,主库cpu问题,主库io问题,读写分离,双剑合璧,mysql主从+memcache,5.1 问题出现,从库读压力大!,5.2 问题解决,解决方案,加内存(96G),加缓

5、存(memcache),Mysql 配置优化,减少从库io操作,5.3 架构变化,MYSQL protocol,DB source layer,read_1/write_3,Insert&delete&update,read_2,一致性hash,前端app servers,Memcached layer,Load balancers,M,S,S,给应用添加读cache,5.3 总结,问题总结:,增加cache,从库io问题,加内存,三足鼎立,mysql主从+memcache+redis,6.1 问题出现,6.1 问题出现,主库写入慢从库延迟,6.2 问题解决,解决方案,Memery 引擎到ca

6、che,加写缓存(redis),减少主库io操作,6.3 架构变化,MYSQL protocol,DB source layer,read_1/write_3/writes,read_2,前端app servers,Memcached+redis,Load balancers,M,S,S,memcache一致性hashredis 取模hash,writes,write,给应用添加写cache,6.4 总结,问题总结:,主库io问题,加cache,合并写操作,分身有术,按业务分库,7.1 问题出现,问题,杂志社上线写双倍读1.3倍数据库大小600G,6.2 问题解决,解决方案,按业务分库,减少主

7、库io操作,7.3 架构变化,MYSQL protocol,DB source layer,read_1/write_3/writes,Insert&delete&update,read_2,一致性hash&按模hash,writes,业务1,业务2,前端app servers,Memcached+redis,Load balancers,M,S,S,M,S,S,按功能分库,7.3 架构变化,前台业务1,后台应用,B,黑洞数据库,transformer,前台业务2,M,S,S,M,S,S,S,S,S,使用黑洞同步数据,6.4 总结,问题总结:,主库io问题,按业务拆分数据库,将写压力分散,杀手

8、锏,水平分表,8.1 问题出现,单表4亿行数据200G空间占用,8.2 问题解决,解决方案,sharding,减少从库io操作,8.3 架构变化,MYSQL protocol,DB source layer,业务1,pk:050000,pk:50000100000,pk:最新的,Query paser,Query router,Resust sort,Result merge,connection management,HA management,r,美丽说内部代号:storage,load blancer,自增id全局生成器,write_1,write_2,M,s,s,M,s,s,M,s,s

9、,水平分表-扩展读操作,8.3 架构变化,MYSQL protocol,DB source layer,业务1,Storage,r,write_2,自增id全局生成器,write_1,取模分配,pk:050000,pk:50000100000,pk:最新的,M,s,s,M,s,s,M,s,s,水平分表-扩展写操作,8.3 架构变化,MYSQL protocol,DB source layer,业务1,Storage,read_2,write_3,自增id全局生成器,write_1,read_1/write_2,Meta表:中心字典,pk:050000,pk:50000100000,pk:最新的

10、,M,s,s,M,s,s,M,s,s,M,s,s,增加meta表,方便运维,数据重平衡,8.4 总结,问题总结:,Sharding(水平分表),将数据尽量装入内存,从库io问题,未雨绸缪,异地机房,9.1 问题出现,问题 改善用户体验 降低风险,9.2 异地机房,A地前台业务1,B地前台业务1,repl,双主,主键奇数递增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,S,C地,主键3,6,9,环形结构,他山之石,工具总结,10.1 工具总结,Mysql相关MysqlslapMysqlslaMysqlreportMysqlproxypercona-toolkitSysbenchTransferRelayfetchpercona-xtrabackupMydumperinnotop,10.1 工具总结,操作系统相关,真相大白,总结,11 总结,11 总结,MANY THANKS,卖你三克丝。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号