在Zuul工程中
1、增加Zuul的Hystrix的配置

並且設置超時時間為2毫秒
2、增加業務降級處理
**
* 業務降級處理
*/
@Component
public class MyFallback implements FallbackProvider {
//針對哪一個路由進行降級, return 可以寫*
@Override
public String getRoute() {
return "film-service";
}
//降級時處理方式
@Override
public ClientHttpResponse fallbackResponse(String route, Throwable cause) {
return new ClientHttpResponse() {
@Override
public HttpStatus getStatusCode() throws IOException {
return HttpStatus.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 {
BaseResponseVO responseVO = BaseResponseVO.serviceException(
new CommonServiceException(404,"System error!~"));
String result = JSONObject.toJSONString(responseVO);
return new ByteArrayInputStream(result.getBytes());
}
@Override
public HttpHeaders getHeaders() {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
return headers;
}
};
}
}
3、測試
因為設置超時時間為2毫秒,所以肯定會觸發降級

