1、pom.xml
在之前的pom中添加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<!--客户端只有当我们有了这个依赖之后,才能有那些状态页面的查看,否则会报ErrorPage-->
</dependency>
这个依赖是让我们添加一些依赖的端点
2、application.yml
在之前的application.yml中添加
management:
endpoints:
web:
exposure:
include: hystrix.stream,health,info,routes
这段代表的是我们需要开放的端点,如果不进行配置,那么只有health和info,配置会直接覆盖掉原有的这两个端点,然后再添加include里面的端点
3、验证zuul里面配有hystrix(访问hystrix.stream端点)
4、可以尝试根据之前的dashboard配置进行尝试
5、Zuul的回退类
在E版本之前都是ZuulFallbackProvider,E版本之后就变成了FallbackProvider,直接添加类如下,即可
@Component
public class MyFallbackProvider implements FallbackProvider {
@Override
public String getRoute() { //表明为哪个微服务提供回退,return "*"代表为所有微服务提供回退
return "eureka-client-provider";
}
@Override
public ClientHttpResponse fallbackResponse(String route, Throwable cause) {
return new ClientHttpResponse() {
@Override
public HttpStatus getStatusCode() throws IOException {
return HttpStatus.OK; //获取状态码(200,OK)
}
@Override
public int getRawStatusCode() throws IOException {
return 200; //返回数字状态码
}
@Override
public String getStatusText() throws IOException {
return "OK"; //返回字母状态码
}
@Override
public void close() {
}
@Override
public InputStream getBody() throws IOException {
return new ByteArrayInputStream("连接异常".getBytes()); //返回的内容
}
@Override
public HttpHeaders getHeaders() {
HttpHeaders headers = new HttpHeaders(); //返回时的Header体的设置
headers.setContentType(MediaType.APPLICATION_JSON);
return headers;
}
};
}
}