服务和限流一直分为两种,主动和被动。dubbo本身就支持主动升降级,被动则可以使用sentinel类似的工具,或进行自研
dubbo的限流可以采用开源的限流工具,例如阿里开源的sentinel等。
当然sentinel还是有很多问题的,这里不具体阐述问题。
通过设置sentinel的限流tps,sentinel可以做到当到达tps时,客户端可以直接抛出异常。
sentinel也可以设置被动降级。例如到时延超过多久的时候,在接下来的10s内,客户端主动抛出异常。
限流和被动降级,也是在客户端直接做了,没有远程rpc的调用。
dubbo自身支持主动降级。
可以在dubbo的控制页面根据消费者,应用等维度进行屏蔽和容错。屏蔽指的是客户端将不再发起远程调用,直接在客户端返回
空对象。容错是当远程调用失败的时候,返回空对象。