针对高并发的思路

思路


1、数据库读写分离

1.1、介绍

  1. 在实际的项目中,我们对读的操作是大于写操作的,如果读写都在一个库的情况下,写操作会锁行数据,这个时候查询数据库就会很慢,非常影响性能,而且数据库读写切换也是非常耗性能的。
  2. 读写分离后,对数据库的读操作去读库,写操作去写库,会提高高并发的数据库访问性能,但是也有风险,什么风险呢,因为读库的数据是从写库通过过来的,当读一个数据的时候,写库的数据还没有同步过来,这个时候就会产生错误数据。

1.2、案例(细节https://blog.csdn.net/zhou920786312/article/details/97813954)

  1. 我以前接手一个项目,项目的是数据库是读写分离的,其中有个插入数据到数据库,并查询插入id的操作。
  2. 将数据插入数据库(主键自增长)
  3. 查询当前连接插入的最大id( LAST_INSERT_ID)
  4. 它查到的id不是当前插入的数据库id,因为写库的数据还没有同步到读库,所以我们查到的数据不是插入数据的id。

2、分离静态资源

  1. 在web项目中,加载图片是非常耗资源的。通常我们会把图片放到图片服务器,并针对图片资源进行加速。
    1. 将大图片分割多个小图片,开启多个线程进行操作,最后多各个进程的处理结果进行汇总处理。
  2. 同理针对js,css,zip文件我们可以做专门的处理

3、cdn加速

  1. CDN加速就是在靠近用户的物理位置上架设服务器,根据就近原则让用户访问物理上最近的服务器来节省网络传输时间。
  2. 作用降低网络传输时间

4、用户请求,数据预处理

4.1、介绍

  1. 我们把一次HTTP请求的时间分成3段:请求–> 计算处理–> 响应。那么我们能专门优化呢。
    1. 请求:数据压缩传输,降低网络传输时间
    2. 响应:数据压缩传输,降低网络传输时间
    3. 计算处理:预先处理好结果,并将结果缓存起来,当用户请求的时候直接返回处理结果。

4.2、介绍案例

  1. 我刚参加工作的那会,我接手一个项目,优化用户登录模块。
    1. 用户登录,做了登录校验,校验成功后
      1. 获取用户的基本信息
      2. 获取用户的零钱信息(我们有自己的购物商场)
      3. 获取用户物流地址信息
      4. 获取用户帖子信息(用户发帖)
      5. 获取用户等级信息(类似qq的等级)
      6. 还有一大堆的用户信息。
    2. 上面的操作是如此的多,而且有些表数据是非常大(单表查询,单表性能高),造成用户登录非常耗时
    3. 针对上面的情况,我做了优化如下
      1. 针对固定的数据,如用户基本信息,我放到缓存中,不去数据库查询,这样减少数据库的请求压力
      2. 针对那些会变化,但是变化间隔时间很大的数据,放到缓存,比如物流地址
      3. 正对那些需要返回的实时数据,比如用户帖子信息(其他用户对帖子的评论),我开启一个定时任务,间隔时间更新用户帖子信息,并把帖子信息放到缓存中,当用户请求帖子接口,不去操作数据库,直接从缓存响应并给出结果。
    4. 具体实施(核心是建立用户的内存模型)
      1. 建立用户的内存模型
        1. 公共数据的内存模型
        2. 具体用户特殊的内存模型
          1. 模块
            1. 业务
              1. 登录
                1. 用户基本信息
              2. 零钱
                1. 用户零钱信息
              3. 帖子
                1. 用户发帖数信息
                2. 用户评论数信息

5、缓存

  1. 使用缓存核心目的是为了减少对数据库的访问压力
  2. 后期服务器的主要压力在数据库压力上

6、负载均衡

  1. 使用集群环境
  2. 目的是将访问请求平均分给各个服务器上
  3. 核心:使各个服务器的压力平均

7、分布式服务器集群

7.1、文件服务器集群

  1. 图片、视频、其他下载文件,它们的下载通常会占用大量的网络带宽。
  2. 图片、视频、其他下载文件,会消耗业务服务器的cpu资源,导致业务功能延迟。
  3. 文件划分为一个单独服务器,不会影响业务服务器带宽,不会影响业务服务器cpu资源消耗。
  4. 提供高可用的对外访问地址(负载均衡)

7.2、业务服务器集群

  1. 连接并发数= 各个服务器并发数之和
  2. 提供高可用的对外访问地址(负载均衡)

7.3、数据库服务器集群

  1. 不仅提高访问性能
  2. 保证了数据安全完整性能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值