Java教程

服务雪崩的思考

本文主要是介绍服务雪崩的思考,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

引起雪崩的原因:
1、硬件故障;
2、程序Bug;
3、缓存击穿(用户大量访问缓存中没有的键值,导致大量请求查询数据库,使数据库压力过大);
4、用户大量请求;

服务雪崩表现:

服务雪崩的第一阶段: 服务不可用;
第二阶段:调用端重试增大流量(用户重试/代码逻辑重试);
第三阶段:服务调用者不可用(同步等待造成的资源耗尽);

3、解决方案
1) 应用扩容(扩大服务器承受力)

        a、加机器
        b、升级硬件
2)流量控制(超出限定流量,返回类似重试页面让用户稍后再试)

        a、限流
        b、关闭重试
3) 缓存

        将用户可能访问的数据大量的放入缓存中,减少访问数据库的请求。

4)服务降级

        a、服务接口拒绝服务
        b、页面拒绝服务
        c、延迟持久化
        d、随机拒绝服务
5) 服务熔断

        如果对服务降级和服务熔断——如使用hystrix

这篇关于服务雪崩的思考的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!