青云为「足记」App 做的架构重组笔记
说明
大家最近应该都听说过 「足记」 吧, 非常火爆的 App 创业项目.
足记 在高速增长时暴露出来的问题, 还有 青云 作为基础架构提供商给出的解决方案, 是非常棒的架构案例, 在此分享给大家.
一些数据:
- 网络流量升至 300M 左右;
- 每秒请求数(qps)达到 3,000;
- 每天 PV 接近 2 亿;
- 新增用户每天将近 200 万;
- 日活跃用户数(DAU)超过 300 万;
- 累计用户超过 1,000 万并保持继续增长;
遇到的问题
- 高峰期服务响应超时甚至不可用;
- 低峰期请求处理缓慢,用户的直观感受就是经常刷新不了页面;
- 为了应急采取了服务降级的手段,部分功能不可用;
- 新功能开发已经停止;
- 应用服务器 CPU 占用率偏高;
- 10 台Web服务器的 CPU 利用率都达到80% - 90%, 急需水平扩容;
- 数据库慢查询(耗时比较长的数据库查询语句)非常多,没有有效利用缓存,导致数据库压力过大、处理效率低。
解决方案
- 将Web 服务器进行了水平扩容,将应用服务器数量扩充了三倍;
- 使用 负载均衡器 做请求分发;
- 数据库 Slave 集群, 提高数据库可用性;
- 引入 Redis 数据库,将业务中对一致性要求不高又要频繁读写的数据结构(如计数器和列表)从 MySQL 迁移到 Redis,减少关系型数据库压力,提高查询效率;
- 进一步增加缓存,降低缓存粒度,降低失效率,提高命中率;
- 为所有资源添加监控告警;
- 配置 AutoScaling ;
本帖已被设为精华帖!