高并发设计思路和处理办法

我没见过一个煤矿工人靠挖煤又快又多当上了煤老板。
 

大型互联网做法是通过扩容、动静分离、缓存、服务降级、限流


1、扩容:垂直扩容和水平扩容
  垂直扩容就是增加单机的处理能力,硬件上面
  水平扩容就是机器的数量

从数据角度分为无状态扩容和有状态扩容
无状态扩容就是我们的应用服务器扩容
有状态扩容一般是指数据存储扩容


2、动静分离
  静态资源请求和动态请求分离

 

3、缓存
效率角度
从回收策略
从缓存使用模式角度
从缓存分级角度
从缓存使用角度
更新方式

 

4、服务降级
业务高峰期,为了保证核心服务,需要停掉一些不太重要的业务。比如评论、论坛、粉丝积分
屏蔽降级
1)throw null不发起远程调佣,直接返回空
2)throw exception 不发起远程调佣,直接抛出制定异常
3)execute bean 不发起远程调用 直接执行本地模拟接口实现
容错降级
1)RPC异常
2)Service异常


5、限流
分类:限制总并发数--数据库连接池、线程池
限制瞬间并发--nginx的limit_count模块、用来限制顺时并发连接数
限制时间窗口内的平均速率


算法
滑动窗口协议--改善吞吐量的技术
漏桶-强制限制数据的传输速率,限制的流出速率
令牌桶--控制流入速率类型的限流算法

posted @ 2022-10-12 09:09  方达达  阅读(5)  评论(0编辑  收藏  举报