关键字
高并发 缓存 限流 降级 熔断 容错
背景
高并发的几个解决方案,就是以上的关键字。那么具体有什么区别呢?特别是降级和熔断?
这篇文章主要是讲降级和熔断的区别。
缓存
缓存不用说了
限流
1s内多少个请求。
降级
达到阈值,就使用备用业务逻辑。
降级-异步
写数据库的操作,降级为异步。即1.先写到消息队列2.然后再异步写到数据库。
在高负载时期,我们可以降低对一致性的要求。将耗时的「数据落盘」操作降级为「异步」进行。//降级就是1.正常业务逻辑(调用远程服务)2.备用业务逻辑3.熔断(不调用远程服务) 4.容错(异常处理,和异常恢复)
熔断
达到阈值,就不调用了。即不调用远程服务。
容错
1.处理异常 //即降级 熔断 处理各种异常
2.从异常中恢复
如何从异常情况恢复?
按反方向条件校验
降级和熔断的区别?
看这个比喻 例子 blog.didispace.com/fallback-an…
代码
步骤
1.正常
2.降级
3.熔断
实际上,代码就是以上三种情况
伪代码
if(正常){
正常;
}else if(降级){
降级; //备用业务逻辑
}else if(熔断){
熔断; //直接return fail。就每次不再调用远程服务。
}