Skip to main content Link Menu Expand (external link) Document Search Copy Copied

架构师-第三阶段:快速性能优化

1、动静分离,快速优化利器?

  • 动静分离,静态资源用单独的域名访问,例如 css、js、图片等静态资源
  • 页面静态化,少量的可以静态化,大量的页面静态化会导致碎片太多,降低性能

2、读写分离,前台后台分离?

  • 数据库,一主多从,主从同步。利用 mysql 的 binlog 同步,解决读多写少的性能(分组读写分离)
  • 数据库水平切分,用算法对全量数据分割,例如用户数据库 user,分为 user01、user02、user0n,线性解决数据库容量问题
  • 前后台分离,前台写入,用户发布数据;后台写入,爬虫抓取数据;前台读取,用户浏览数据;后台读取,运营浏览数据

3、百万级流量,架构该怎么玩?

  • 三大分离(动静分离、读写分离、前后台分离)
  • 垂直拆分业务,解耦
    • 业务垂直拆分
    • 代码垂直划分(子系统解耦)
    • 数据库垂直拆分(数据里解耦,延时缓解)
    • 研发团队垂直拆分(专业化、效率提升)
  • 垂直拆分后,子系统如何保证高可用
    • 反向代理
    • 集群
  • 集群后,如何做负载均衡
  • 反向代理后,保证高可用
  • 反向代理后,DNS 轮询技术,实施接入层扩展
  • session 一致性保证,在服务端用 redis 存储 session
  • CDN 架构
    • 资源更新,采用拉(镜像拉源),而不是推(源推送镜像)
    • 常更新的静态资源,加上版本号
  • 当系统流量超过百万,甚至是千万级别后,还有哪些优化方法?
    • 分层服务化
    • 服务化后的高可用、高性能、负载均衡
    • 数据库极限优化
    • 架构优化万金油,缓存最佳实践
    • 高并发下的一致性

萌ICP备20240168号