pull/1809/merge
Fishtail 2 weeks ago committed by GitHub
commit 552b54be4f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -11,3 +11,4 @@
- [fix: prepend context-path to contract reporter API paths](https://github.com/Tencent/spring-cloud-tencent/pull/1803)
- [feat: support overrideHost configuration for ratelimit, event reporter and stat modules](https://github.com/Tencent/spring-cloud-tencent/pull/1804)
- [fix: split contract base-package for springdoc scan](https://github.com/Tencent/spring-cloud-tencent/pull/1807)
- [feat: support using seperated cb in wildcard-api level and add cb counters expire interval config](https://github.com/Tencent/spring-cloud-tencent/pull/1809)

@ -69,6 +69,8 @@ public class CircuitBreakerConfigModifier implements PolarisConfigModifier {
.setDefaultInterval(polarisCircuitBreakerProperties.getDefaultInterval());
configuration.getConsumer().getCircuitBreaker()
.setDefaultMinimumRequest(polarisCircuitBreakerProperties.getDefaultMinimumRequest());
configuration.getConsumer().getCircuitBreaker()
.setCountersExpireInterval(polarisCircuitBreakerProperties.getCountersExpireInterval());
}
@Override

@ -64,6 +64,11 @@ public class PolarisCircuitBreakerProperties {
*/
private int defaultMinimumRequest = 10;
/**
* Counters expire interval for circuit-breaker, unit millisecond. 0 means never expire. Default is 0.
*/
private long countersExpireInterval = 300000;
public boolean isEnabled() {
return enabled;
}
@ -120,6 +125,14 @@ public class PolarisCircuitBreakerProperties {
this.defaultMinimumRequest = defaultMinimumRequest;
}
public long getCountersExpireInterval() {
return countersExpireInterval;
}
public void setCountersExpireInterval(long countersExpireInterval) {
this.countersExpireInterval = countersExpireInterval;
}
@Override
public String toString() {
return "PolarisCircuitBreakerProperties{" +
@ -130,6 +143,7 @@ public class PolarisCircuitBreakerProperties {
", defaultErrorPercent=" + defaultErrorPercent +
", defaultInterval=" + defaultInterval +
", defaultMinimumRequest=" + defaultMinimumRequest +
", countersExpireInterval=" + countersExpireInterval +
'}';
}
}

@ -41,6 +41,12 @@
"type": "java.lang.Integer",
"defaultValue": 10,
"description": "Error rate circuit-breaker default minimum request."
},
{
"name": "spring.cloud.polaris.circuitbreaker.counters-expire-interval",
"type": "java.lang.Long",
"defaultValue": 0,
"description": "Counters expire interval for circuit-breaker, unit millisecond. 0 means never expire."
}
],
"hints": []

@ -41,7 +41,8 @@ public class PolarisCircuitBreakerPropertiesTest {
.withPropertyValues("spring.cloud.polaris.circuitbreaker.default-error-count=1")
.withPropertyValues("spring.cloud.polaris.circuitbreaker.default-error-percent=2")
.withPropertyValues("spring.cloud.polaris.circuitbreaker.default-interval=3")
.withPropertyValues("spring.cloud.polaris.circuitbreaker.default-minimum-request=4");
.withPropertyValues("spring.cloud.polaris.circuitbreaker.default-minimum-request=4")
.withPropertyValues("spring.cloud.polaris.circuitbreaker.counters-expire-interval=60000");
@Test
public void testDefaultInitialization() {
@ -53,6 +54,7 @@ public class PolarisCircuitBreakerPropertiesTest {
assertThat(polarisCircuitBreakerProperties.getDefaultErrorPercent()).isEqualTo(2);
assertThat(polarisCircuitBreakerProperties.getDefaultInterval()).isEqualTo(3);
assertThat(polarisCircuitBreakerProperties.getDefaultMinimumRequest()).isEqualTo(4);
assertThat(polarisCircuitBreakerProperties.getCountersExpireInterval()).isEqualTo(60000);
});
}

@ -42,6 +42,6 @@ public interface CircuitBreakerQuickstartCalleeServiceWithFallback {
* @param uid uid variable
* @return circuit break info
*/
@GetMapping("/circuitBreak/wildcard/{uid}")
@GetMapping("/quickstart/callee/circuitBreak/wildcard/{uid}")
String circuitBreakWildcard(@PathVariable String uid);
}

Loading…
Cancel
Save