马丁大叔眼里的 springcloud Hystrix

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30947631/article/details/85156434

上一篇文章说道了马丁关于Hystrix的理解直接上代码说明使用的过程,Hystrix是属于线程池隔离,为每个HystrixCommand提供线程级别的隔离,各个请求之间互不影响。

@RestContrller
@DefaultPropertis(defaultFallback = "fallbackMethod")
public class HystrixController{
	@Autowired
	RestTemplate restTemplate;
	@HystrixCommand(commandProperties = {
	//通过查看源码可以知道配置
		@HystrixProperty(name = "circuitBreaker.enable" ,value = "true")  //运行打开熔断器机制
		@HystrixProperty(name = "circuitBreaker.requestVolumeThreshold" ,value = "10") //最少请求次数
		@HystrixProperty(name = "circuitBreaker.sleepWindowInMilliseconds" ,value = "10000")	//失败后的10秒内处于open状态,之后再尝试半打开状态,一旦尝试成功,立刻close掉breaker,否则open
		@HystrixProperty(name = "circuitBreaker.errorThresholdPercentage" ,value = "60") //失败请求的百分比       
		})
	@GetMapping("/proList")
	public String proList(){
		return restTemplate.postForObject();
	}
	//定义fallback方法
	public String fallbackMethod(){
		return "error network...";
	}
	//默认的降级服务的方法
	public String defaltFallbackMethod(){
		return "default fallback...";
	}
}

这个配置同样也是可以通过yml配置文件来实现配置,但是这里需要注意的的是,无论是哪种配置,都需要对调用的方法上写上注解 @HystrixCommand
在这里插入图片描述
yml的配置这时候就可以配置在springcloud-config的统一配置中心上或者直接写到本地配置
在这里插入图片描述
如果希望单独为某个接口设定一个超时时间
尝试通过查看源码来配置
在这里插入图片描述
从源码的提示知道如果希望针对某个接口单独设置超时时间,可以通过自定义的方法名来写到配置文件上
在这里插入图片描述

展开阅读全文

没有更多推荐了,返回首页