大流量场景下MySQL如何准备

背景

领导通知过两天要搞秒杀活动,流量会暴涨,MySQL 可不能拖后腿啊,让我提供个方案。

大流量下需要了解的事

  1. 用户希望 APP 不要出现卡顿,点击一个功能马上就能有响应并反馈,不然用户可能就去用别家的了
  2. 数据库响应慢意味着用户、领导会觉得你的能力不行
  3. 哪怕几秒钟的停机时间也意味着巨大的损失,可能会流失用户

活动前

  1. 做好监控,如果对 MySQL 内部一无所知,如何知道是否有效果?
  2. 对应用程序进行负载测试,测试在正常负载和峰值负载下的扩容。在活动开始之前找出瓶颈是最佳时机,活动开始才发现系统的瓶颈,时间仓促,且容易引发更大的问题。
  3. 测试灾备切换所需的时间及是否有效
  4. 停止发布新的代码及配置文件
  5. 针对 checklist 仔细检查,不要假设。大部分故障是容易被忽视的问题引起
  6. 检查备份是否有效

活动期间

  1. 灾备切换是最后的选择。不到万不得已,不要做。
  2. 提前安排好 owner,每个人负责具体的事项,对该事项进行监控、调整和故障修复。
  3. 出现问题优先恢复业务,而不是留着故障等待开发排查
  4. 别让问题变得更严重,某些操作可能会让 MySQL 变慢,在更改前评估影响
  5. 收集好日志及其他数据用于事后分析,预防之后不能重现

活动后

  1. 分析并了解流量和使用情况,用于下次活动。
  2. 不要因为活动结束了就忘记活动期间出现的问题,问题不会自己消失。
  3. 从错误中吸取教训,预防下次
  4. 将系统升级到最新版和漏洞修复,
  5. 不要自满,技术每年都在变化,也许今年的经验明年就不好使了,必须定期分析、规划和审查

大流量场景下MySQL如何准备

上一篇:WebBrowser中注入js后ajax报错No Transport 或message":"拒绝访问。 ","description":"拒绝访问


下一篇:PHP文件操作常用函数