实现分离浅析电商、社区、游戏常用的 MySQL 架构

本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~

   

    一般

    、或者必须是这样、MySQL 架构必定要结合业务来分析、设计、优化
   所以不论是那种架构、根据业务要求组合成符合需求的等于最好的、不能泛泛而谈
   同时、也必须注意数据的安全(如ipsec,ssh,vpn传输)
   
   

    

    见的架构都是进行业务切分、前端缓存、分库分表、若是过亿的查询量、
   先从业务上拆分、将 bbs、web、blog 分红几个组、然后再做成一主多从、读写分离的方法
   而且、在设计表的时候、一般情况下、备库常充当起备份查询的作用
   至于、读写分离、在程序设计之初、读和写是通过不同的IP进口、这是思路一、或者定义类、或者用代理层,比如 MySQL-proxy
   
   

    大多

    数的场合、一般在应用层做读写分离、然后 MySQL 通过复制来实现、优点比较多,可控性非常好、
   MySQL Replication、这个是王道、最少当初是、未来说不准哈
   相比复制而言、Cluster 在出产环境核心环节基本不必、或者当初罕用
   因为、前期投入的硬件本钱(绝对于主从)较高、一般的小项目不会使用、Cluster的本钱(大部分是维护本钱)还是比较高的
   但随着后续版本的发布、估计案例会越来越多、毕竟是非常好的 sharding-nothing 的方案
   
   
   

    

    戏中的:挚友关系、排行榜、计数器、队列、cache 都很合适通过 Redis 来实现

       至于 Redis 的事务功能、可以不必放太多的心思去关怀

       另外、Redis 绝对 Memcached 而言、也稳定很多

    每日一道理
爱,有的时候不需要山盟海誓的承诺,但她必定需要细致入微的关怀与问候;爱,有的时候不需要梁祝化蝶的悲壮,但她必定需要心有灵犀的默契与投合;爱,有的时候不需要雄飞雌从的追随,但她必定需要相濡以沫的支持与理解。

   
   
   

    电商

    中、出产环境也都是主从架构、然后用 DRBD + HA 做 Master 备份
   主主不推荐、高可用还是推荐 DRBD 方案
   DRBD 注意不设置主动启动、重启时候手动启动、脑裂的情况产生非常的少
   不过、工作中基本不重启 DRBD、更不会重启服务器了、基本上没遇到脑裂的问题
   DRBD 这个在做风险容灾的时候有必定作用、但不能起到扩展、结合 LVS相信也是一种 perfect方案
   如:LVS+Keepalived 可以通过脚本剔除延迟慢或失效的从MySQL呆板、
   而且LVS在软件负载均衡器中是最强的、在后端节点超过10台以上的情况、估计只有LVS能胜任
   
      
   

    

    模大的公司(如Sina、taobao)
   1、不必集群是说mysql自身的集群用的不多(目前看也是可以用的)
   2、主从可所以多组,数个
   3、每组都可能一主多从(业务数据的1/N)
   4、3中每一组里的读或写 都多是前端调度器的一个RS
   5、调度器分发可以hash分组,可以根据用户ID切分数据,当然还有更高等的手腕
   提示:SINA开发经理承认,他们的SAE平台还是主从,甚至还有单点(靠监控和手工处置))
   
   

    规模

    中等的公司(如CSDN)
   1)mysql一主多从程序读写分离(甚至还没实现),多组。出问题直接手工或主动切从后在change master(脚本或程序实现)
   2)drbd+ha实现高可用(也是双主多从,主动切换M,正常备M不可提供服务)
   3)或双主多从,前端结合读及写分别负载均衡

文章结束给大家分享下程序员的一些笑话语录: 联想——对内高价,补贴对外倾销的伟大“民族”企业。

posted @ 2013-05-15 19:29  xinyuyuanm  阅读(201)  评论(0编辑  收藏  举报