简单的服务熔断方案

参考Servlet规范中,处理请求时出现异常,异常处理的方式。可以设计一个分布式环境下,简单的熔断方案。
远程的服务可以抛出UnavailableException。当远程服务接口抛出UnavailableException时,处理好异常相关的工作。在此之上,根据异常时暂时的,还是永久的来保护服务。
如果是临时服务不可用,异常中应该带有不可用持续的时间长度,那么在此期间再有新的请求需要调用此接口,应该不调用此接口,直接返回失败。
如果是永久不可用,那么应该标记该接口永久不可用。任何时候有请求需要访问此接口都应该直接返回失败。
这个简单的熔断方案,可以避免在分布式环境下发现服务的雪崩效应。
但是,这个方案也存在一个问题,就是当远程服务彻底什么都不能返回时,应该怎么办。可以采用传统的方式,多次服务异常时标记服务不可用。调用时直接返回不可用。这样就统一了异常的处理。

posted @ 2019-03-29 21:43  Dybvig  阅读(963)  评论(0编辑  收藏  举报