美丽说数据库架构变迁.ppt_第1页
美丽说数据库架构变迁.ppt_第2页
美丽说数据库架构变迁.ppt_第3页
美丽说数据库架构变迁.ppt_第4页
美丽说数据库架构变迁.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

美丽说数据库架构变迁,Web研发王伟 ,第21期: 高性能数据库应用之“美丽说”技术专场 www.LAMPER.cn /lampercn,目录,一.武功秘籍 - 向上扩展&向外扩展 二.很久很久以前 - mysql主从架构 三.祸起萧墙 - 按功能分配机器 四.泾渭分明 - 读写分离 五.双剑合璧 - mysql主从+memcache 六.三足鼎立 - mysql主从+memcech+redis 七.分身有术 - 按业务分库 八.杀手锏 - 水平分表 九.未雨绸缪 - 异地机房 十.他山之石 - 工具总结 十一.真相大白 - 总结,武功秘籍,向上扩展&向外扩展,1 向上扩展&向外扩展,向上扩展 (Scale Up) 单机硬件升级 (扩展极限) 增加(或升级) CPU ,存储设备升级,增加内存 . 更换更高端硬件 使用小型机和高端存储 (上贼船) . 向外扩展 (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,简单负载均衡器,实现了按权重,随机等基本负载均衡算法,数据库主从架构,主库(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.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),加缓存(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 引擎到cache,加写缓存(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一致性hash redis 取模hash,writes,write,给应用添加写cache,6.4 总结,问题总结:,主库io问题,加cache,合并写操作,分身有术,按业务分库,7.1 问题出现,问题,杂志社上线 写双倍 读1.3倍 数据库大小600G,6.2 问题解决,解决方案,按业务分库,减少主库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.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,水平分表-扩展读操作,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:最新的,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相关 Mysqlslap My

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论