feat:support instance detect.

pull/1620/head
Haotian Zhang 3 months ago committed by fishtailfu
parent 229d0d0b4b
commit fa6bc5a3cd

@ -10,3 +10,4 @@
- [feat:support config all recover enabled.](https://github.com/Tencent/spring-cloud-tencent/pull/1606)
- [feat:support stat reporting path aggregation.](https://github.com/Tencent/spring-cloud-tencent/pull/1610)
- [feat:support namespace exports configuration if not created.](https://github.com/Tencent/spring-cloud-tencent/pull/1615)
- [feat:support instance detect.](https://github.com/Tencent/spring-cloud-tencent/pull/1620)

@ -27,6 +27,7 @@ import com.tencent.cloud.polaris.config.config.PolarisConfigProperties;
import com.tencent.cloud.polaris.config.config.PolarisCryptoConfigProperties;
import com.tencent.cloud.polaris.context.PolarisConfigurationConfigModifier;
import com.tencent.cloud.polaris.context.config.PolarisContextProperties;
import com.tencent.polaris.api.config.consumer.OutlierDetectionConfig;
import com.tencent.polaris.api.utils.CollectionUtils;
import com.tencent.polaris.api.utils.StringUtils;
import com.tencent.polaris.factory.config.ConfigurationImpl;
@ -64,6 +65,7 @@ public class ConfigurationModifier implements PolarisConfigurationConfigModifier
public void modify(ConfigurationImpl configuration) {
configuration.getGlobal().getAPI().setReportEnable(false);
configuration.getGlobal().getStatReporter().setEnable(false);
configuration.getConsumer().getOutlierDetection().setWhen(OutlierDetectionConfig.When.never);
if (!polarisContextProperties.getEnabled() || !polarisConfigProperties.isEnabled()) {
return;

@ -55,6 +55,8 @@ public class DiscoveryConfigModifier implements PolarisConfigModifier {
configuration.getConsumer().getZeroProtection().setEnable(polarisDiscoveryProperties.isZeroProtectionEnabled());
configuration.getConsumer().getZeroProtection()
.setNeedTestConnectivity(polarisDiscoveryProperties.isZeroProtectionNeedTestConnectivity());
configuration.getConsumer().getOutlierDetection().setWhen(polarisDiscoveryProperties.getDetect().getWhen());
}
@Override

@ -18,6 +18,7 @@
package com.tencent.cloud.polaris;
import com.tencent.cloud.common.constant.ContextConstant;
import com.tencent.polaris.api.config.consumer.OutlierDetectionConfig;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ -127,6 +128,11 @@ public class PolarisDiscoveryProperties {
*/
private String namespaceExports;
/**
* Instance detect.
*/
private Detect detect = new Detect();
public String getInstanceId() {
return instanceId;
}
@ -278,6 +284,14 @@ public class PolarisDiscoveryProperties {
this.namespaceExports = namespaceExports;
}
public Detect getDetect() {
return detect;
}
public void setDetect(Detect detect) {
this.detect = detect;
}
@Override
public String toString() {
return "PolarisDiscoveryProperties{" +
@ -298,6 +312,29 @@ public class PolarisDiscoveryProperties {
", preferIpv6=" + preferIpv6 +
", allRecoverEnabled=" + allRecoverEnabled +
", namespaceExports='" + namespaceExports + '\'' +
", detect=" + detect +
'}';
}
public static class Detect {
/**
* Enable instance detect or not.
*/
private OutlierDetectionConfig.When when = OutlierDetectionConfig.When.never;
public OutlierDetectionConfig.When getWhen() {
return when;
}
public void setWhen(OutlierDetectionConfig.When when) {
this.when = when;
}
@Override
public String toString() {
return "Detect{" +
"when=" + when +
'}';
}
}
}

@ -18,6 +18,7 @@
package com.tencent.cloud.polaris;
import com.tencent.polaris.api.config.consumer.OutlierDetectionConfig;
import org.junit.jupiter.api.Test;
import static com.tencent.polaris.test.common.Consts.NAMESPACE_TEST;
@ -97,6 +98,11 @@ public class PolarisDiscoveryPropertiesTest {
polarisDiscoveryProperties.setNamespaceExports("*");
assertThat(polarisDiscoveryProperties.getNamespaceExports()).isEqualTo("*");
PolarisDiscoveryProperties.Detect detect = new PolarisDiscoveryProperties.Detect();
detect.setWhen(OutlierDetectionConfig.When.after_call);
polarisDiscoveryProperties.setDetect(detect);
assertThat(polarisDiscoveryProperties.getDetect().getWhen()).isEqualTo(OutlierDetectionConfig.When.after_call);
assertThat(polarisDiscoveryProperties.toString())
.isEqualTo("PolarisDiscoveryProperties{"
+ "namespace='Test'"
@ -114,6 +120,7 @@ public class PolarisDiscoveryPropertiesTest {
+ ", zeroProtectionNeedTestConnectivity=false"
+ ", preferIpv6=true"
+ ", allRecoverEnabled=false"
+ ", namespaceExports='*'}");
+ ", namespaceExports='*'"
+ ", detect=Detect{when=after_call}}");
}
}

Loading…
Cancel
Save