spring cloud zuul errorFilter 不生效

这篇博客探讨了在使用Spring Cloud Zuul时遇到的错误过滤器(errorFilter)不生效的问题,特别是针对Hystrix超时和Ribbon超时的设置。作者指出,当服务不可用时,GlobalErrorFilter虽然会被调用,但SendErrorFilter会覆盖其返回信息。为了解决这个问题,禁用了SendErrorFilter的错误发送,但带来了返回空值的新挑战。解决方案涉及到移除`throwable`以确保SendResponseFilter能够正确执行。完整配置代码已上传至GitHub。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近搞了搞 spring cloud的全家桶,在用到zuul的时候,有一些问题,这里记录一下

先上一段配置,根据配置来说说

spring:
  application:
    name: zuul-provider
server:
  port: 9096

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8763/eureka/,http://localhost:8762/eureka/,http://localhost:8761/eureka/
#这个的意思是,配置在erueka里面叫erueka-provider的服务。
#只要是api开头的url都会被转发到指定的服务上面
#如果path配置成'/**/api/**'的话,会跳转,不过所有的url都会映射到后端
#如果path配置成'/api/**'的话,会跳转,并且忽略掉'/api'部分
zuul:
  routes:
    erueka-provider-inner:
      path: /inner/**
    erueka-provider-outside:
      path: /outside/**
  # 指定路由关闭重试机制
  #zuul.routes.<route>.retryable=false
  # 全局关闭重试机制
  retryable: false
  add-host-header: true #设置为true重定向是会添加host请求头
  sensitive-headers: Cookie,Set-Cookie,Authorization #配置过滤敏感的请求头信息,设置为空就不会过滤

  #这里禁用SendErrorFilter ,不然即使有全局的errorFilter,返回结果也会被覆盖
  SendErrorFilter:
    error:
      disable: true


#hystrix的全局超时时间,有可能是服务挂掉、出错或者超时,会走全局的FallbackProvider,
hystrix:
  command:
    defau
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值