springcloud zuul fallback 回退返回数据异常

我的eureka中注册了user服务 和 gateway-zuul-fallback 服务
直接访问user服务localhost:8081/user/getUser?id=1 没问题
通过zuul访问userlocalhost:8097/user/user/getUser?id=1 也没问题
zuul服务yml配置:
图片说明
fallbackConfig
图片说明

我把 user服务挂掉,通过zuul代理访问报以下错误:(怎么返回的不是fallback error string)
2018-05-22 10:46:33.835 WARN 9020 --- [nio-8097-exec-9] o.s.c.n.z.filters.post.SendErrorFilter : Error during filtering
com.netflix.zuul.exception.ZuulException: null
at org.springframework.cloud.netflix.zuul.util.ZuulRuntimeException.(ZuulRuntimeException.java:33) ~[spring-cloud-netflix-core-1.4.4.RELEASE.jar:1.4.4.RELEASE]
at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.run(RibbonRoutingFilter.java:119) ~[spring-cloud-netflix-core-1.4.4.RELEASE.jar:1.4.4.RELEASE]
Caused by: java.lang.NullPointerException: null
at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.forward(RibbonRoutingFilter.java:159) ~[spring-cloud-netflix-core-1.4.4.RELEASE.jar:1.4.4.RELEASE]
at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.run(RibbonRoutingFilter.java:111) ~[spring-cloud-netflix-core-1.4.4.RELEASE.jar:1.4.4.RELEASE]
... 66 common frames omitted
页面返回:
{
"timestamp": 1526956683342,
"status": 500,
"error": "Internal Server Error",
"exception": "com.netflix.zuul.exception.ZuulException",
"message": "No message available"
}

0

2个回答

将MyFallBackConfig中的getRoute()方法修改为return "user";

0
qq_31482599
眉头 回复egg1996911: 不知道怎么回事,我把return的ClientHttpResponse对象 写到有参数的fallbackResponse(Throwable cause)方法中就能正常返回,但是cause获取不到异常信息。如果知道原因的话,麻烦告知一下。谢谢!!!
大约一年之前 回复
qq_31482599
眉头 回复egg1996911: 是没进MyFallBackConfig 刚开始是放到启动类所在包的子包中的,然后按照你说的手动配置扫描包,还是没有进这个类。
大约一年之前 回复
egg1996911
DengDengLei 回复qq_31482599: 你可以用debug打断点,在MyFallBackConfig中添加空构造函数,看是否进入到了构造函数内部,从而检验这个类是否被Spring扫描到了
大约一年之前 回复
egg1996911
DengDengLei 回复qq_31482599: 此外你还要保证你的MyFallBackConfig类被Spring扫描到了,可以在启动类中添加@ComponentScan(basePackages = {"XXX"})
大约一年之前 回复
qq_31482599
眉头 没用
大约一年之前 回复

debug显示哪行报错

0
qq_31482599
眉头 没有具体显示,明显错误我贴出来了
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
spring cloud zuul 配置全局回退无效的原因
首先,spring cloud 的版本为 Edgware.SR3 自定义FallbackProvider 的实现请点击这里,大神写的很详细; 起初我的bootstrap.yml 配置服务路由为: routes: auth-server: strip-prefix: true sensitiveHeaders: path: /v1/auth-api...
SpringCloud Zuul的回退与过滤器
目录 待续 Zuul的回退fallback hystrix具有fallback回退能力,如果服务调用出现了异常,则可以执行指定的fallback方法。那现在zuul对api服务集群进行了反向代理,集成了hystrix,那zuul也能fallback了同样也拥有了hystrix回退的能力。 fallback实例 1.创建回退类并集成ZuulFallbackProvide...
SpringCloud-Finchley集成Zuul服务网关组件并实现回退
1.服务网关Zuul介绍 服务网关是微服务架构中一个不可或缺的部分。通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由、均衡负载功能之外,它还具备了权限控制等功能。Spring Cloud Netflix中的Zuul就担任了这样的一个角色,为微服务架构提供了前门保护的作用,同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,使得服务集群主体能够具备更高的可复用性和可测试...
Ribbon、Feign、Zuul的Fallback回退机制比较
你知道Ribbon、Feign、Zuul的Fallback回退机制之前的不同之处吗?不妨看这篇文章了解了解
Zuul的Fallback回退机制
Zuul的Fallback回退机制如何配置,这篇文章带你了解实际操作!
springcloud zuul fallback 回退返回数据异常
我的eureka中注册了user服务 和 gateway-zuul-fallback 服务rn直接访问user服务localhost:8081/user/getUser?id=1 没问题rn通过zuul访问userlocalhost:8097/user/user/getUser?id=1 也没问题rnzuul服务yml配置:rn![图片说明](https://img-ask.csdn.net/upload/201805/22/1526957296_9037.png)rnfallbackConfigrn![图片说明](https://img-ask.csdn.net/upload/201805/22/1526957384_939838.png)rnrn我把 user服务挂掉,通过zuul代理访问报以下错误:(怎么返回的不是fallback error string)rn 2018-05-22 10:46:33.835 WARN 9020 --- [nio-8097-exec-9] o.s.c.n.z.filters.post.SendErrorFilter : Error during filteringrn com.netflix.zuul.exception.ZuulException: nullrn at org.springframework.cloud.netflix.zuul.util.ZuulRuntimeException.(ZuulRuntimeException.java:33) ~[spring-cloud-netflix-core-1.4.4.RELEASE.jar:1.4.4.RELEASE]rn at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.run(RibbonRoutingFilter.java:119) ~[spring-cloud-netflix-core-1.4.4.RELEASE.jar:1.4.4.RELEASE]rn Caused by: java.lang.NullPointerException: nullrn at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.forward(RibbonRoutingFilter.java:159) ~[spring-cloud-netflix-core-1.4.4.RELEASE.jar:1.4.4.RELEASE]rn at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.run(RibbonRoutingFilter.java:111) ~[spring-cloud-netflix-core-1.4.4.RELEASE.jar:1.4.4.RELEASE]rn ... 66 common frames omittedrn 页面返回:rn rn "timestamp": 1526956683342,rn "status": 500,rn "error": "Internal Server Error",rn "exception": "com.netflix.zuul.exception.ZuulException",rn "message": "No message available"rn
Spring Cloud【Finchley】-17 使用Zuul为单个或全部微服务提供容错与回退功能
文章目录概述 概述 Spring Cloud【Finchley】-14 微服务网关Zuul的搭建与使用 # Step8. 网关功能-Hystrix监控测试中我们测试了Zuul默认集成了Hystrix的监控,但是没有提及容错。 这里我们来学习下zuul的容错与回退功能如何实现。 官方指导:https://cloud.spring.io/spring-cloud-static/Finchley.SR2...
springcloud系列—Hystrix—第3章-3: Hystrix 服务降级(fallback)与异常处理,Hystrix依赖隔离(命令名称-分组和线程池)、请求缓存与清除缓存、断路器
资料参考:《Spring Cloud 微服务实战》 目录 服务降级 在HystrixCommand中可以通过重载getFallback()方法来实现服务降级逻辑。 在 HystrixObservableCommand 实现得 Hystrix 命令中,我们可以通过重载 resumenWithFallback 方法来实现服务降级逻辑。 使用注解来定义服务降级逻辑 异常处理 异常传播(就是...
SpringCloud zuul控制全局回退异常导致其它路由(服务)无法返回连接超时异常信息
我的环境就是使用了zuul来控制全局回退异常,如果其中任何一个服务导致连接超时或者其它异常,都将通过zuul进行回退异常。 网关核心类如下:该类的作用就是控制了所有注册到eureka上面的服务的-全局异常处理。 /** *@Component 这个注解就是说将它注册到服务中去(也就是spring容器中) *它和@Bean 大同小异 @Bean也是注册到spring容器中,只不过它是基于配置...
18.Spring-Cloud-Zuul之文件上传和容错与回退
对于通过API网关调用文件上传服务来说,文件(1M以内)无须任何处理,即看正常上传。对于大文件(10M以上)上传。需要在上传路径上添加/zuul前缀。也可使用zuul.servlet-path自定义前缀。 文件上传演示   pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0"    xmlns:xsi="http:/...
第二十四章 Spring cloud 如何在Zuul中使用fallback功能
如何在Zuul中使用fallback功能 我们在项目中使用Spring cloud zuul的时候,有一种这样的需求,就是当我们的zuul进行路由分发时,如果后端服务没有启动,或者调用超时,这时候我们希望Zuul提供一种降级功能,而不是将异常暴露出来。 项目结构如下: SrpingCLoudFallBack类 package com.example.demo.fallback;
关于cloud接口无法执行fallback问题
公司以前的项目都是只是springboot的,rpc调用全部是基于dubbo接口的调用,现在正慢慢地向springcloud转型,所以在添加配置的时候,经常会有一些配置被遗漏,导致出现问题。 在老项目中添加了cloud组件,用feignClient调用cloud接口出错后没有按预期进入fallback方法,起初是怀疑fallback返回值有问题,导致程序下一步继续出错,排查后发现fallback...
Spring Cloud Feign记录错误日志
1.pom.xml<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> </dependency>2.配置文件#开启feign feign.hystrix.e...
SpringCloud极简入门|zuul智能路由回退、认证、转发功能demo 第五讲
  开篇点题    在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统。 本章将讲解zuul(路由)这个组件,希望大家可以有个简单的入门。 Zuul简介 Zuul的主要功能是路由转发和过滤器。路由功能是微服务的一部分,比如/api/user转发到到user服务,/...
SpringCloud高版本在Zuul中使用fallback功能
如何在Zuul中使用fallback功能 我们在项目中使用Spring cloud zuul的时候,当我们的zuul进行路由分发时,如果后端服务没有启动,或者调用超时,这时候我们希望Zuul提供一种处理机制功能,而不是将异常暴露出来。 使用fallback非常简单只需要实现FallbackProvider类即可,定义MyFallbackProvider类并实现FallbackProvider,...
SpringCloud+Feign+Hystrix使用FallbackFactory统一处理,查看服务调用异常或失败,进入熔断降级处理的原因
SpringCloud+Feign+Hystrix使用FallbackFactory统一处理,查看服务调用异常或失败,进入熔断降级处理的原因 1、 @FeignClient类 此类中的@FeignClient中fallbackFactory属性指定熔断降级处理的类为WebFeignFallbackFactory。 package com.tianchang.wei.service.feign.se...
Spring Cloud zuul自定义统一异常处理实现
Zuul在springcloud微服务体系中提供filer和router功能,是微服务不可或缺的部分。filer处理默认实现的外还可以自定义进行授权、限流、安全校验等,router完全可以替代Nginx反向代理。Zuul异常处理就是由SendErrorFilter完成。 在我们应用过程我们发现使用默认的异常filter有两个问题不是很
zuul网关回退
@Component @Slf4j public class ServiceConsumerFallbackProvider implements FallbackProvider { @Override public ClientHttpResponse fallbackResponse(Throwable cause) { if (cause != null &...
springcloud--zuul 异常处理(一)
一,加入zuul后头部信息被忽略    在同一个系统中的服务之间共享标题是可行的,但是您可能不希望敏感标头泄漏到外部服务器的下游。您可以在路由配置中指定被忽略头文件列表。Cookies起着特殊的作用,因为它们在浏览器中具有明确的语义,并且它们总是被视为敏感的。如果代理的消费者是浏览器,则下游服务的cookie也会导致用户出现问题,因为它们都被混淆(所有下游服务看起来都是来自同一个地方)。如果您对服...
Spring Cloud实战Zuul统一异常处理
Spring Cloud Zuul中自己实现的一些核心过滤器,以及这些过滤器在请求生命周期中的不同作用。我们会发现在这些核心过滤器中并没有实现error阶段的过滤器。那么这些过滤器可以用来做什么呢?接下来,本文将介绍如何利用error过滤器来实现统一的异常处理。过滤器中抛出异常的问题首先,我们可以来看看默认情况下,过滤器中抛出异常Spring Cloud Zuul会发生什么现象。我们创建一个pre...
SpringCloud Zuul过滤器返回值拦截
Zuul作为网关服务,是其他各服务对外中转站,通过Zuul进行请求转发。这就涉及到部分数据是不能原封返回的,比如服务之间通信的凭证,用户的加密信息等等。本文中的代码已提交至: https://gitee.com/cmlbeliever/springcloud 欢迎Star 实现类在:api-getway工程下的com.cml.springcloud.api.filter.AuthResponseF
springcloud+zuul+oauth2 实现服务统一认证(新增自定义异常返回,获取认证服务器token自定义异常后面在搞)
第一种配置方式:zuul只负责转发,流控等(不负责认证) 1.介绍 (1) eureka服务发现,各服务配置就不发了,只看关于认证这块; (2) 服务名 端口号 备注 auth 8082 认证服务器 mechant 8081 资源服务器 zuul 80 网关 2配置认证服务器 (1)添加依赖(oauth已经包含了secur...
十、微服务网关之Zuul容错与回退
Spring Cloud中,Zuul默认已经整合了Hystrix。 Zuul回退 编写Zuul回退类: @Component public class MyFallbackProvider implements FallbackProvider { // 表明是为哪个微服务提供回退,*代表所有 @Override public String getRoute() { ...
SpringCloud feign服务熔断下的异常处理
2019-01-18 10:21 在此推荐下自个的一个基础复习库,囊括常见的数据结构和算法以及一些解决方案,还处于更新状态 --------------------------------------------------------------------------------------------------------------------------------------- ...
通过Fallback Factory检查回退原因
很多场景下,需要了解回退的原因,此时可使用注解@FeignClient的fallbackFactory属性,下面通过一个例子说明一 新建项目microservice-consumer-movie-feign-hystrix-fallback-factory二 UserFeignClient如下package com.itmuch.cloud.study.user.feign; import or...
24、Feign捕获错误码并降级处理
正常情况下,我们使用Feign一般使用方式如下 (1)声明服务接口 @FeignClient(name = "hello",fallback = HelloServiceImpl.class) public interface HelloService { @GetMapping("hello") public String hello(); }...
Feign方式使用Hystrix,通过FallbackFactory检查回退原因
返回目录 https://blog.csdn.net/BW_Bear/article/details/88746646 Hystrix 监控可视化.note源码位置: 微服务注册管理: https://github.com/zhaowei-zhang/CloudTest/tree/master/使用Hystrix实现容错/microservice-discovery-eureka 生产者: htt...
springcloud哪些异常可以走fallback逻辑
@FeignClient(name="application-name",fallback=xxxFallback.class) public interface CommonModuleService { /** * * @return */ @PostMapping("/commonOrganize/listOrgs") Api...
zuul压力测试报错解决方案
1.REJECTED_SEMAPHORE_EXECUTION错误 这个是zuul信号量配置太小的问题,默认信号量大小100,可以自己修改 zuul: semaphore: max-semaphores: 2000 #修改信号量 2.TIMEOUT 错误 注意:zuul :host 只有zuul路由是url是才生效,如果使用的是serviceId,请使用(ribbon.ReadTime...
Feign中 fallback获取400等异常信息及message
Spring cloud中当调用第三接口的时候,为防止超时一直等待,我们一般用断路由的方式来进行超时返回,我一般用Spring Cloud Hystrix。在调用第三方的地方进行fallback进行声明,然后重新fallback函数,配置超时时间,在超时时间内容没有返回或者参数错误就进人到fallback里面进行处理。具体的做法,网上一大堆,可自行百度。 然后第三方接口,在参数错误的时候,也是按...
教程:一起学习Hystrix--Hystrix处理异常机制(降级方法)
目录 降级 异常传递 惊喜 Fallback(降级)     我们可以通过增加一个 fallback (回退)方法在hystrix命令实现优雅降级,如果主命令失败,hystrix可以获取一个默认值或者值集合。我们可能想为更多的可能失败的h...
spring cloud 入门(五)【负载均衡与 FeignClient 容错机制一(通过类容错)】
一 负载均衡 spring cloud 负载均衡非常简单,现在服务提供者 menu,重新copy 一份munu ,命名 menu2 ,将端口 修改为 8764 ,其他配置都不变 这个时候 如何 再次调用 user/getMenu 接口, 查看 menu 和 menu2 的日志,我们可以看出来,user 访问一次,两个 menu 是通过 轮询交替访问的 容错机制   容错是荣的 服务器...
Zuul的容错回退与高可用
zuul的容错与回退 之前说到过,使用Hystrix实现微服务的容错与回退,其实Zuul默认已经整合了Hystrix,使用起来也是比较简单: 在原有 zuul-gateway 项目的基础上新增,实现ZuulFallbackProvider接口,并实现getRoute和fallbackResponse方法 import com.google.gson.Gson; import com.sim...
Feign调用微服务异常配合Hystrix的正确处理方式
这是本人在项目中总结出来的基础服务异常的处理方式,同时也借鉴了其他博客大神的内容整理出来的前提项目中全局禁用了feign的hystirxfeign: hystrix: enabled: false 意味着,当基础服务出现异常无法通过feign的fallback配置类降级,这里研究服务熔断的方式在方法场景所期望的:1.基础服务能主动抛出自定义异常,同时不触发熔断,把异常信息返给调用者2....
zuulFilter中获取返回的状态码,并且根据状态码进行跳转
public class Response401Filter extends ZuulFilter { @Value("${safebox.loginUrl}") private String loginUrl; @Override public String filterType() { return "post"; } @Ov...
Spring Cloud Hystrix 定义服务降级和异常 处理
概述 原来的计划是写一篇大而全的文章,用来介绍spring cloud Hystrix,但是想了想,这样的做法其实也并不是特别好,所以 打算把原来的文章拆分,这样能够看起来比较清晰。 服务降级 继承HystrixCommand来实现 fallback是Hystrix命令执行失败时使用的后备方法,用来实现服务的降级处理逻辑。在HystrixCommand中可以通过重载 getFallback ()...
SpringCloud Alibaba Sentinel限流熔断降级(四)--------------客户端配置动态数据源Nacos获取限流规则
前面我们介绍了sentinel控制台以及客户端的启动,并且实现了在控制台添加流控以及熔断规则,并且将规则发送给客户端。但是,将客户端重启,我们会发现,我们之前设置的规则将会丢失,这是因为客户端将规则保存在内存中,并没有将其持久化,因而,这样并不适用于生产环境。 下面我们介绍一下Sentinel采用Nacos数据源,将规则持久化: 控制台以及Nacos可以按照之前的博客自行启动: 启动Sent...
spring cloud2 zuul网关故障重试转发
pom.xml部分    <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version&gt
Spring Cloud Zuul记录接口响应数据
系统在生产环境出现问题时,排查问题最好的方式就是查看日志了,日志的记录尽量详细,这样你才能快速定位问题。 如果需要在Zuul中进行详细的日志记录,这两种日志必不可少。 - API请求信息 - API响应信息 前面有介绍过如何获取请求信息,文章请查看《Spring Cloud Zuul过滤器获取请求参数问题》。 今天正好又有一位朋友问我如何获取响应的数据,抽时间给大家写篇文章简单分享下。 ...
Hystrix降级逻辑中如何获取触发的异常?
通过之前Spring Cloud系列教程中的《Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)》一文,我们已经知道如何通过Hystrix来保...