高并发

首先要了解高并发的的瓶颈在哪里?

前端性能优化技术

  1. 前端负载均衡: DNS,CDN

  2. 减少前端链接数: 把js打成一个文件,把css也打成一个文件,把图标也打成一个文件,用css分块展示。把链接数减到最低。

  3. 减少网页大小增加带宽:尽量少用图片

  4. 前端页面静态化: 静态化一些不常变的页面和数据

  5. 优化查询: redis缓存


后端性能优化技术

  1. 数据冗余: 减少表连接这样的开销比较大的操作,优化sql语句

  2. 数据镜像: 把一台数据库的负载均分到多台上,同时又保证了数据一致性(Oracle的SCN)。最重要的是,这样还可以有高可用性,一台废了,还有另一台在服务

  3. 数据分区

    • 把数据把某种逻辑来分类: 把一张表拆成多张有一样的字段但是不同种类的表
    • 把数据按字段分,也就是竖着分表: 把一些不经常改的数据放在一个表里,经常改的数据放在另外多个表里。把一张表变成1对1的关系
    • 平均分表: 通过主键ID的范围来分表。
    • 同一数据分区: 把同一商品的库存值分到不同的服务器上,然后负载均衡
  4. 后端系统负载均衡: 需要一个任务分配系统,其还能监控各个服务器的负载情况。

  5. 异步、 throttle 和 批量处理: 把一堆基本相同的请求批量处理,大家同时购买同一个商品,没有必要你买一个我就写一次数据库,完全可以收集到一定数量的请求,一次操作一个是作业量,另一个是timeout