feat:support instance detect. (#1616)

pull/1619/head
Haotian Zhang 3 months ago committed by fishtailfu
parent 836e737089
commit a00be98628

@ -9,3 +9,4 @@
- [feat:support config all recover enabled.](https://github.com/Tencent/spring-cloud-tencent/pull/1605) - [feat:support config all recover enabled.](https://github.com/Tencent/spring-cloud-tencent/pull/1605)
- [feat:support stat reporting path aggregation.](https://github.com/Tencent/spring-cloud-tencent/pull/1609) - [feat:support stat reporting path aggregation.](https://github.com/Tencent/spring-cloud-tencent/pull/1609)
- [feat:support namespace exports configuration if not created.](https://github.com/Tencent/spring-cloud-tencent/pull/1614) - [feat:support namespace exports configuration if not created.](https://github.com/Tencent/spring-cloud-tencent/pull/1614)
- [feat:support instance detect.](https://github.com/Tencent/spring-cloud-tencent/pull/1619)

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

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

@ -18,6 +18,7 @@
package com.tencent.cloud.polaris; package com.tencent.cloud.polaris;
import com.tencent.cloud.common.constant.ContextConstant; 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.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
@ -127,6 +128,11 @@ public class PolarisDiscoveryProperties {
*/ */
private String namespaceExports; private String namespaceExports;
/**
* Instance detect.
*/
private Detect detect = new Detect();
public String getInstanceId() { public String getInstanceId() {
return instanceId; return instanceId;
} }
@ -278,6 +284,14 @@ public class PolarisDiscoveryProperties {
this.namespaceExports = namespaceExports; this.namespaceExports = namespaceExports;
} }
public Detect getDetect() {
return detect;
}
public void setDetect(Detect detect) {
this.detect = detect;
}
@Override @Override
public String toString() { public String toString() {
return "PolarisDiscoveryProperties{" + return "PolarisDiscoveryProperties{" +
@ -298,6 +312,29 @@ public class PolarisDiscoveryProperties {
", preferIpv6=" + preferIpv6 + ", preferIpv6=" + preferIpv6 +
", allRecoverEnabled=" + allRecoverEnabled + ", allRecoverEnabled=" + allRecoverEnabled +
", namespaceExports='" + namespaceExports + '\'' + ", 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; package com.tencent.cloud.polaris;
import com.tencent.polaris.api.config.consumer.OutlierDetectionConfig;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import static com.tencent.polaris.test.common.Consts.NAMESPACE_TEST; import static com.tencent.polaris.test.common.Consts.NAMESPACE_TEST;
@ -97,6 +98,11 @@ public class PolarisDiscoveryPropertiesTest {
polarisDiscoveryProperties.setNamespaceExports("*"); polarisDiscoveryProperties.setNamespaceExports("*");
assertThat(polarisDiscoveryProperties.getNamespaceExports()).isEqualTo("*"); 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()) assertThat(polarisDiscoveryProperties.toString())
.isEqualTo("PolarisDiscoveryProperties{" .isEqualTo("PolarisDiscoveryProperties{"
+ "namespace='Test'" + "namespace='Test'"
@ -114,6 +120,7 @@ public class PolarisDiscoveryPropertiesTest {
+ ", zeroProtectionNeedTestConnectivity=false" + ", zeroProtectionNeedTestConnectivity=false"
+ ", preferIpv6=true" + ", preferIpv6=true"
+ ", allRecoverEnabled=false" + ", allRecoverEnabled=false"
+ ", namespaceExports='*'}"); + ", namespaceExports='*'"
+ ", detect=Detect{when=after_call}}");
} }
} }

Loading…
Cancel
Save