当前位置: 移动技术网 > IT编程>开发语言>Java > 2.4容错保护:Hystrix

2.4容错保护:Hystrix

2019年09月20日  | 移动技术网IT编程  | 我要评论

在ribbon使用断路器

改造serice-ribbon 工程的代码,首先在pox.xml文件中加入spring-cloud-starter-hystrix的起步依赖:

引入

<dependency>
<groupid>org.springframework.cloud</groupid>
<artifactid>spring-cloud-starter-hystrix</artifactid>
</dependency>

在程序的启动类serviceribbonapplication 加@enablehystrix注解开启hystrix:

@springbootapplication
@enablediscoveryclient
@enablehystrix
public class serviceribbonapplication {

public static void main(string[] args) {
springapplication.run(serviceribbonapplication.class, args);
}

@bean
@loadbalanced
resttemplate resttemplate() {
return new resttemplate();
}

}

改造helloservice类,在hiservice方法上加上@hystrixcommand注解。该注解对该方法创建了熔断器的功能,并指定了fallbackmethod熔断方法,熔断方法直接返回了一个字符串,字符串为”hi,”+name+”,sorry,error!”,代码如下:

@service
public class helloservice {

@autowired
resttemplate resttemplate;

@hystrixcommand(fallbackmethod = "hierror")
public string hiservice(string name) {
return resttemplate.getforobject("http://service-hi/hi?name="+name,string.class);
}

public string hierror(string name) {
return "hi,"+name+",sorry,error!";
}
}

启动:service-ribbon 工程,当我们访问http://localhost:8764/hi?name=forezp,浏览器显示:

hi forezp,i am from port:8762

此时关闭 service-hi 工程,当我们再访问http://localhost:8764/hi?name=forezp,浏览器会显示:

hi ,forezp,orry,error!

这就说明当 service-hi 工程不可用的时候,service-ribbon调用 service-hi的api接口时,会执行快速失败,直接返回一组字符串,而不是等待响应超时,这很好的控制了容器的线程阻塞。

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网