服务的隔离,熔断,降级,限流

1.服务的隔离:

          默认情况下,一个项目的接口都是由一个线程池去维护的,当某个接口被大量访问的时候,其他的接口就会被迫等待,当达到线程池的极限的时候甚至会造成服务的丢失,造成服务的雪崩效应(A接口被大量访问,会造成其他接口等待,不可用)。

      解决方案:

             信号量:给每个接口设置最大访问量,超过阈值就执行服务的降级。

             线程池:使用Hystrix服务保护框架,给每个接口分配一个独有的线程池,这样可以保证每个接口互不影响(cpu消耗高)。

2.服务的降级:

      当访问某个接口长时间没有响应时,不必让客户端一直等待,直接返回一个提示给客户端(类似当前服务忙,请稍后再试),直接调用Hystrix中的fallBack方法。

3.服务的熔断:

      当服务的访问量达到一定阈值的时候,为了保护服务,直接拒绝后续的服务(一般对后续的服务使用服务降级)。

4.服务限流:

  在高并发的情况,一旦服务承受不了使用服务限流机制(计数器(滑动窗口计数)、漏桶算法、令牌桶(Restlimite))

发布了68 篇原创文章 · 获赞 93 · 访问量 8513

猜你喜欢

转载自blog.csdn.net/qq_34707456/article/details/103297498