美文网首页方案面试精选Java技术升华
后端服务的雪崩效应及解决思路

后端服务的雪崩效应及解决思路

作者: 迦叶_金色的人生_荣耀而又辉煌 | 来源:发表于2021-12-17 07:20 被阅读0次

    上一篇 <<<缓存策略汇总
    下一篇 >>>服务的隔离、降级和熔断


    1.RPC与本地调用的区别

    RPC远程调用,一般是跨平台、采用http协议,因为http协议底层使用socket技术,只要你的语言支持socket技术,就可以相互进行通讯。
    比如:java语言开发的接口,使用http协议,如此以来C#语言可以调用。
    本地调用:只支持java语言与java语言开发,使用虚拟机和虚拟机之间的通讯,RMI。

    2.雪崩效应产生的原因

    默认情况下只有一个线程池维护所有的服务接口,如果大量的请求访问同一个接口,达到tomcat线程池默认极限,可能会导致其他服务无法访问。

    3.雪崩效应的解决思路

    服务器在高并发下会产生雪崩效应,为了解决此可以,主要可以从三方面解决
    a、缓存:提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的核心。
    b、服务隔离、熔断、降级等,当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;
    隔离:让各服务使用独立的线程池,互不影响。
    熔断:当服务达到最大的承受极限直接拒绝访问,使用服务降级。
    降级:用户一直等待时,给客户端一个友好的错误提示。
    c、限流:不能使用缓存或降级时的解决方案,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页)。

    Hystrix是一个微服务关于服务保护的框架,是Netflix开源的一款针对分布式系统的延迟和容错解决框架,目的是用来隔离分布式服务故障。
    限流和服务保护都需要和服务降级共同使用。

    白话文理解:
    服务保护:当服务产生堆积的时候,对服务实现保护功能
    服务隔离:保证每个服务互不影响,使用信号量或线程池方式
    服务降级:当服务不可用的时候,不会被等待,直接给客户端一个友好提示
    服务熔断:当服务器达到最大的承受能力后,直接决绝访问服务,采用服务降级返回友好提示。


    推荐阅读:
    <<<高并发架构的整体思路
    <<<一个网站访问慢的真正原因
    <<<高并发情况下,接口的代码会存在哪些问题
    <<<压缩静态资源减少带宽传输的方式
    <<<动静分离架构模式
    <<<缓存策略汇总
    <<<服务的隔离、降级和熔断
    <<<服务限流之计数器方式
    <<<服务限流之滑动窗口计数
    <<<服务限流之令牌桶算法
    <<<服务限流之漏桶算法
    <<<漏桶算法和令牌桶算法的区别
    <<<自定义封装限流算法
    <<<应用级限流
    <<<接入层限流

    相关文章

      网友评论

        本文标题:后端服务的雪崩效应及解决思路

        本文链接:https://www.haomeiwen.com/subject/xekrfrtx.html