博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringCloud Hystrix实现容错和回退
阅读量:5009 次
发布时间:2019-06-12

本文共 2186 字,大约阅读时间需要 7 分钟。

为zuul添加回退

想要为Zuul添加回退,需要实现ZuulFallbackProvider接口,在实现类中,指定为哪个微服务提供回退,并提供一个ClientHttpResponse作为回退响应。

1.复制项目microservice-gateway-zuul,将ArtifactId修改为microservice-gateway-zuul-fallback。
2.编写zuul的回退类:

package com.xhx.springcloud.hystrix; import com.alibaba.fastjson.JSONObject;import org.springframework.cloud.netflix.zuul.filters.route.FallbackProvider;import org.springframework.http.HttpHeaders;import org.springframework.http.HttpStatus;import org.springframework.http.MediaType;import org.springframework.http.client.ClientHttpResponse;import org.springframework.stereotype.Component; import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.InputStream; /** * xuhaixing * 2018/6/12 21:36 */@Componentpublic class ZuulFallBack implements FallbackProvider {    @Override    public String getRoute() {        return "eureka-feign";  //服务id,可以用* 或者 null 代表所有服务都过滤    }     @Override    public ClientHttpResponse fallbackResponse(String route, Throwable cause) {        return new ClientHttpResponse() {            @Override            public HttpStatus getStatusCode() throws IOException {                return HttpStatus.OK; //请求网关成功了,所以是ok            }             @Override            public int getRawStatusCode() throws IOException {                return HttpStatus.OK.value();            }             @Override            public String getStatusText() throws IOException {                return HttpStatus.OK.getReasonPhrase();            }             @Override            public void close() {             }             @Override            public InputStream getBody() throws IOException {                JSONObject json =new JSONObject();                json.put("state","501");                json.put("msg","后台接口错误");                return new ByteArrayInputStream(json.toJSONString().getBytes("UTF-8")); //返回前端的内容            }             @Override            public HttpHeaders getHeaders() {                HttpHeaders httpHeaders = new HttpHeaders();                httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8); //设置头                return httpHeaders;            }        };    }}

转载于:https://www.cnblogs.com/wuhen8866/p/11116195.html

你可能感兴趣的文章
EXCEL工作表合并
查看>>
Prime Path
查看>>
ODAC(V9.5.15) 学习笔记(三)TOraSession(2)
查看>>
sqlyog 安装使用
查看>>
单纯形法
查看>>
SQL中的replace函数
查看>>
java中的类型安全问题-Type safety: Unchecked cast from Object to ...
查看>>
如何解决最后一个尾注引用显示与致谢混为一谈的问题-下
查看>>
Java Socket编程 - 基于TCP方式的二进制文件传输【转】http://blog.csdn.net/jia20003/article/details/8248221...
查看>>
阅读之https及加密原理
查看>>
HDOJ4550 卡片游戏 随便销毁内存的代价就是wa//string类的一些用法
查看>>
css文本样式text、字体样式font
查看>>
洛谷 P1020 导弹拦截(LIS)
查看>>
python判断图片是否损坏
查看>>
MySQL服务启动:某些服务在未由其他服务或程序使用时将自动停止
查看>>
软件工程第四周作业 - 单元测试
查看>>
KNN与SVM对比&SVM与逻辑回归的对比
查看>>
php 现在拓展地址
查看>>
【Java并发编程】之十六:深入Java内存模型——happen-before规则及其对DCL的分析(含代码)...
查看>>
团队个人冲刺第三天
查看>>