Mysql 架构优化
架构优化目标
防止单点隐患
所谓单点隐患,就是某台设备出现故障,会导致整体系统的不可用,这个设备就是单点隐患。
理解连带效应,所谓连带效应,就是一种问题会引发另一种故障,举例而言,memcache+mysql是一种常见缓存组合,在前端压力很大时,如果memcache崩溃,理论上数据会通过mysql读取,不存在系统不可用情况,但是mysql无法对抗如此大的压力冲击,会因此连带崩溃。因A系统问题导致B系统崩溃的连带问题,在运维过程中会频繁出现。
实战范例: 在mysql连接不及时释放的应用环境里,当网络环境异常(同机房友邻服务器遭受拒绝服务攻击,出口阻塞),网络延迟加剧,空连接数急剧增加,导致数据库连接过多崩溃。
实战范例2:前端代码 通常我们封装 mysql_connect和memcache_connect,二者的顺序不同,会产生不同的连带效应。如果mysql_connect在前,那么一旦memcache连接阻塞,会连带mysql空连接过多崩溃。
连带效应是常见的系统崩溃,日常分析崩溃原因的时候需要认真考虑连带效应的影响,头疼医头,脚疼医脚是不行的。
方便系统扩容
数据容量增加后,要考虑能够将数据分布到不同的服务器上。
请求压力增加时,要考虑将请求压力分布到不同服务器上。
扩容设计时需要考虑防止单点隐患。
安全可控,成本可控
数据安全,业务安全
人力资源成本>带宽流量成本>硬件成本
成本与流量的关系曲线应低于线性增长(流量为横轴,成本为纵轴)。 规模优势
本教程仅就与数据库有关部分讨论,与数据库无关部门请自行参阅其他学习资料。