fix:fix zuul delay circuit breaker.

pull/1518/head
Haotian Zhang 6 months ago
parent 472e5d5655
commit acbff471ff

@ -9,6 +9,7 @@ on:
- 2020.0
- hoxton
- greenwich
- release/*
pull_request:
branches:
- 2023.0
@ -17,6 +18,7 @@ on:
- 2020.0
- hoxton
- greenwich
- release/*
jobs:
codecov:

@ -10,12 +10,14 @@ on:
- 2021.0
- 2020.0
- greenwich
- release/*
pull_request:
branches:
- hoxton
- 2021.0
- 2020.0
- greenwich
- release/*
jobs:
junit:

@ -9,6 +9,7 @@ on:
- 2020.0
- hoxton
- greenwich
- release/*
pull_request:
branches:
- 2023.0
@ -17,6 +18,7 @@ on:
- 2020.0
- hoxton
- greenwich
- release/*
jobs:
check-license:
runs-on: ubuntu-latest

@ -9,6 +9,7 @@ on:
- 2020.0
- hoxton
- greenwich
- release/*
jobs:
check-snapshot:

@ -90,7 +90,7 @@
<properties>
<!-- Project revision -->
<revision>2.0.0.0-Hoxton.SR12</revision>
<revision>2.0.0.1-Hoxton.SR12</revision>
<!-- Spring Framework -->
<spring.framework.version>5.2.25.RELEASE</spring.framework.version>

@ -70,7 +70,7 @@
</developers>
<properties>
<revision>2.0.0.0-Hoxton.SR12</revision>
<revision>2.0.0.1-Hoxton.SR12</revision>
<!-- Dependencies -->
<polaris.version>2.0.0.0</polaris.version>

@ -18,12 +18,10 @@
package com.tencent.cloud.quickstart.caller.circuitbreaker;
import com.tencent.cloud.common.metadata.MetadataContext;
import reactor.core.publisher.Mono;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.cloud.client.circuitbreaker.CircuitBreakerFactory;
import org.springframework.cloud.client.circuitbreaker.ReactiveCircuitBreakerFactory;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@ -64,9 +62,6 @@ public class CircuitBreakerController {
@Autowired
private CircuitBreakerFactory circuitBreakerFactory;
@Autowired
private ReactiveCircuitBreakerFactory reactiveCircuitBreakerFactory;
@Autowired
private WebClient.Builder webClientBuilder;
@ -166,23 +161,4 @@ public class CircuitBreakerController {
return new ResponseEntity<>(httpClientErrorException.getResponseBodyAsString(), httpClientErrorException.getStatusCode());
}
}
/**
* Get information of callee.
* @return information of callee
*/
@GetMapping("/webclient")
public Mono<String> webclient() {
return webClientBuilder
.build()
.get()
.uri("/quickstart/callee/circuitBreak")
.retrieve()
.bodyToMono(String.class)
.transform(it ->
reactiveCircuitBreakerFactory
.create(MetadataContext.LOCAL_NAMESPACE + "QuickstartCalleeService#/quickstart/callee/circuitBreak#http#GET")
.run(it, throwable -> Mono.just("fallback: trigger the refuse for service callee"))
);
}
}

@ -23,3 +23,6 @@ zuul:
QuickstartCallerService:
serviceId: QuickstartCallerService
path: /QuickstartCallerService/**
QuickstartCalleeService:
serviceId: QuickstartCalleeService
path: /QuickstartCalleeService/**

@ -35,6 +35,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import static com.tencent.cloud.common.constant.ContextConstant.Zuul.POLARIS_PRE_ROUTE_TIME;
/**
* Polaris circuit breaker implement in Zuul.
*
@ -75,6 +77,7 @@ public class EnhancedZuulPluginRunner {
enhancedPluginContext.setRequest(enhancedRequestContext);
enhancedPluginContext.setOriginRequest(context);
enhancedPluginContext.setLocalServiceInstance(pluginRunner.getLocalServiceInstance());
context.set(POLARIS_PRE_ROUTE_TIME, System.currentTimeMillis());
// Run pre enhanced plugins.
pluginRunner.run(EnhancedPluginType.Client.PRE, enhancedPluginContext);

Loading…
Cancel
Save