1.服务的隔离:
默认情况下,一个项目的接口都是由一个线程池去维护的,当某个接口被大量访问的时候,其他的接口就会被迫等待,当达到线程池的极限的时候甚至会造成服务的丢失,造成服务的雪崩效应(A接口被大量访问,会造成其他接口等待,不可用)。
解决方案:
信号量:给每个接口设置最大访问量,超过阈值就执行服务的降级。
线程池:使用Hystrix服务保护框架,给每个接口分配一个独有的线程池,这样可以保证每个接口互不影响(cpu消耗高)。
2.服务的降级:
当访问某个接口长时间没有响应时,不必让客户端一直等待,直接返回一个提示给客户端(类似当前服务忙,请稍后再试),直接调用Hystrix中的fallBack方法。
3.服务的熔断:
当服务的访问量达到一定阈值的时候,为了保护服务,直接拒绝后续的服务(一般对后续的服务使用服务降级)。
4.服务限流:
在高并发的情况,一旦服务承受不了使用服务限流机制(计数器(滑动窗口计数)、漏桶算法、令牌桶(Restlimite))