代码拉取完成,页面将自动刷新
基于时间滑动窗口方式实现的熔断器,支持熔断配置,降级.
<groupId>dawdler</groupId>
<artifactId>dawdler-circuit-breaker</artifactId>
使用@CircuitBreaker标注的方法会被开启熔断器
例:
@RemoteService(group="user-service")
public interface UserService {
@CircuitBreaker
Map<String, Object> selectUserList(int pageOn)throws Exception;
}
@CircuitBreaker 中有fallbackMethod的属性,fallbackMethod是接口中方法的实现.
例:
@CircuitBreaker(fallbackMethod = "selectUserListFallback")
Map<String, Object> selectUserList(int pageOn)throws Exception;
default Map<String, Object> selectUserListFallback(int pageOn)throws Exception{
Map<String, Object> result = new HashMap<>();
return result;
}
public @interface CircuitBreaker {
/**
* @return String
* @Description 标识key,默认为"" 则为servicePath+serviceName+serviceMethod组合
* @date 2018年3月10日
*/
String breakerKey() default "";
/**
* @return int
* @Description 统计时长 intervalInMs/windowsCount 建议为整数,默认3000,单位为毫秒.
* @date 2018年3月10日
*/
int intervalInMs() default 3000;
/**
* @return int
* @Description 窗口大小
* @date 2018年3月10日
*/
int windowsCount() default 2;
/**
* @return int
* @Title sleepWindowInMilliseconds
* @Description 熔断器打开后,所有的请求都会直接失败,熔断器打开时会在经过一段时间后就放行一条请求成功则关闭熔断器,此配置就为指定的这段时间,默认值是
* 5000,单位为毫秒.
* @date 2018年3月10日
*/
int sleepWindowInMilliseconds() default 5000;
/**
* @return int
* @Description 启用熔断器功能窗口时间内的最小请求数,默认为5.
* @date 2018年3月10日
*/
int requestVolumeThreshold() default 5;
/**
* @return double
* @Description 错误百分比,默认为40% 达到40%的错误率会触发熔断(大于requestVolumeThreshold)
* @date 2018年3月10日
*/
double errorThresholdPercentage() default 0.4;
/**
* @return String
* @Description 熔断后执行的方法 参数与返回值与执行的方法相同
* @date 2018年3月10日
*/
String fallbackMethod() default "";
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。