From 9b1b8d5235722fa59f9a7420b46b99b4ae0f3beb Mon Sep 17 00:00:00 2001 From: Haotian Zhang <928016560@qq.com> Date: Sun, 30 Mar 2025 12:28:07 +0800 Subject: [PATCH] feat:support zuul circuit breaker fallback response. --- .../polaris/router/zuul/PolarisRibbonRoutingFilter.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/zuul/PolarisRibbonRoutingFilter.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/zuul/PolarisRibbonRoutingFilter.java index 5ec17b486..c8a788e83 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/zuul/PolarisRibbonRoutingFilter.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/zuul/PolarisRibbonRoutingFilter.java @@ -199,6 +199,7 @@ public class PolarisRibbonRoutingFilter extends RibbonRoutingFilter implements B @Override public Object run() { + RequestContext context = RequestContext.getCurrentContext(); // Run pre enhanced plugins. try { enhancedZuulPluginRunner.run(); @@ -208,8 +209,7 @@ public class PolarisRibbonRoutingFilter extends RibbonRoutingFilter implements B throw e; } // circuit breaker fallback, not need to run post/exception enhanced plugins. - RequestContext context = RequestContext.getCurrentContext(); - // s + // set sendZuulResponse to false context.setSendZuulResponse(false); // set response status code HttpStatus httpStatus = HttpStatus.resolve(e.getFallbackInfo().getCode()); @@ -224,6 +224,9 @@ public class PolarisRibbonRoutingFilter extends RibbonRoutingFilter implements B e.getFallbackInfo().getHeaders().forEach(context.getResponse()::addHeader); } } - return super.run(); + if (context.sendZuulResponse()) { + return super.run(); + } + return null; } }