高并发解决方案

什么是高并发

通俗来讲,高并发是指在同一个时间点,有很多用户同时的访问同一接口或者urI地址。它经常会发生在有大活跃用户量,用户高聚集的业务场景中。如: 淘宝,京东,天猫,微信支付等等

高并发造成的问题

  1. 数据不一致问题,多个用户对同一个数据进行读写操作,第一个用户已经把100改成了99,第二个用户读取时也是100,同样也拿走了一个,依旧把100改成99,实际上已经拿走了2个,数据却只减了一个
  2. 安全问题,高并发容易引起安全问题,如恶意攻击,导致信息泄露等问题
  3. 性能问题,当一个请求发生,系统会做出相应的计算,高并发时会产生大量的计算,增加系统的负载,轻则导致系统相应变慢,重则导致服务崩溃或者停止响应
  4. 缓存击穿,在高并发的情况下,可能会出现大量没有命中缓存的数据,数据库瞬时压力过大,导致崩溃
  5. 队列问题,在高并发环境下,请求在排队等待的情况下,队列管理不当,导致拥堵,请求出现大量的失败或者超时

解决方案

  1. 提升硬件,这是最简单有效的处理方式,但是这样提升有限
  2. 负载均衡,利用多台机器来分担压力,但是要求程序需要支持负载均衡的部署方式(如redis或者其它中间件来统一存储session)
  3. 分布式缓存,有效应用缓存,数据库毕竟是对磁盘操作,其速度远远慢内存中数据读写的速度,有效运用缓存可以非常好的处理并发问题,这里如果有缓存中间件将缓存分散到多台服务器上,减少单台服务器的压力。
  4. 数据库优化,合理建立索引,优化查询效率,提升处理能力(如分库分表,读写分离,一主多从,多主多从)
  5. 异步处理,当请求量过大,服务器吞吐有限,可以采用异步处理的方式(消息队列,协程,异步IO等)
  6. 架构优化,将服务拆分,形成更小的模块(微服务),以小模块进行单独部署,通过网关集群化
  7. 代码优化,合理性设计开发代码,通过更优的算法或者更有效率的代码,提升系统的执行效率

当然这些解决方案要结合实际场景来灵活运用,运用的越多,相应的维护成本越大、维护难度越大。你总不能建个飞机跑道来跑电动车吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

斗码士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值