feat: update failover

pull/1718/head
fishtailfu 2 weeks ago
parent f6ac5eca36
commit dcf1db1c95

@ -19,13 +19,11 @@ package com.tencent.cloud.polaris.router;
import com.tencent.cloud.common.constant.OrderConstant;
import com.tencent.cloud.polaris.context.PolarisConfigModifier;
import com.tencent.cloud.polaris.router.config.properties.PolarisMetadataRouterProperties;
import com.tencent.cloud.polaris.router.config.properties.PolarisNearByRouterProperties;
import com.tencent.polaris.api.config.consumer.ServiceRouterConfig;
import com.tencent.polaris.api.utils.StringUtils;
import com.tencent.polaris.factory.config.ConfigurationImpl;
import com.tencent.polaris.plugins.router.healthy.RecoverRouterConfig;
import com.tencent.polaris.plugins.router.metadata.MetadataRouterConfig;
import com.tencent.polaris.plugins.router.nearby.NearbyRouterConfig;
import com.tencent.polaris.specification.api.v1.traffic.manage.RoutingProto;
@ -38,10 +36,8 @@ public class RouterConfigModifier implements PolarisConfigModifier {
private final PolarisNearByRouterProperties polarisNearByRouterProperties;
private final PolarisMetadataRouterProperties polarisMetadataRouterProperties;
public RouterConfigModifier(PolarisNearByRouterProperties polarisNearByRouterProperties, PolarisMetadataRouterProperties polarisMetadataRouterProperties) {
public RouterConfigModifier(PolarisNearByRouterProperties polarisNearByRouterProperties) {
this.polarisNearByRouterProperties = polarisNearByRouterProperties;
this.polarisMetadataRouterProperties = polarisMetadataRouterProperties;
}
@Override
@ -54,9 +50,6 @@ public class RouterConfigModifier implements PolarisConfigModifier {
// Update modified config to source properties
configuration.getConsumer().getServiceRouter()
.setPluginConfig(ServiceRouterConfig.DEFAULT_ROUTER_RECOVER, recoverRouterConfig);
MetadataRouterConfig metadataRouterConfig = configuration.getConsumer().getServiceRouter().getPluginConfig(
ServiceRouterConfig.DEFAULT_ROUTER_METADATA, MetadataRouterConfig.class);
metadataRouterConfig.setMetadataFailOverType(polarisMetadataRouterProperties.getFailoverType());
if (StringUtils.isNotBlank(polarisNearByRouterProperties.getMatchLevel())) {
RoutingProto.NearbyRoutingConfig.LocationLevel locationLevel =
RoutingProto.NearbyRoutingConfig.LocationLevel.valueOf(StringUtils.upperCase(polarisNearByRouterProperties.getMatchLevel()));

@ -41,8 +41,8 @@ public class RouterConfigModifierAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public RouterConfigModifier routerConfigModifier(PolarisNearByRouterProperties polarisNearByRouterProperties, PolarisMetadataRouterProperties polarisMetadataRouterProperties) {
return new RouterConfigModifier(polarisNearByRouterProperties, polarisMetadataRouterProperties);
public RouterConfigModifier routerConfigModifier(PolarisNearByRouterProperties polarisNearByRouterProperties) {
return new RouterConfigModifier(polarisNearByRouterProperties);
}
}

@ -17,7 +17,7 @@
package com.tencent.cloud.polaris.router.config.properties;
import com.tencent.polaris.plugins.router.metadata.FailOverType;
import com.tencent.polaris.api.rpc.MetadataFailoverType;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ -30,14 +30,14 @@ public class PolarisMetadataRouterProperties {
private boolean enabled = true;
private FailOverType failoverType = FailOverType.all;
private MetadataFailoverType failOver = MetadataFailoverType.METADATAFAILOVERALL;
public FailOverType getFailoverType() {
return failoverType;
public MetadataFailoverType getFailOver() {
return failOver;
}
public void setFailoverType(FailOverType failoverType) {
this.failoverType = failoverType;
public void setFailOver(MetadataFailoverType failOver) {
this.failOver = failOver;
}
public boolean isEnabled() {

@ -45,11 +45,11 @@ public class MetadataRouterRequestInterceptor implements RouterRequestIntercepto
if (!polarisMetadataRouterProperties.isEnabled()) {
return;
}
// set metadata router label keys
MetadataContainer metadataContainer = MetadataContextHolder.get()
.getMetadataContainer(MetadataType.CUSTOM, false);
String metadataRouteKeys = metadataContainer.getRawMetadataStringValue(LABEL_KEY_METADATA_ROUTER_KEYS);
metadataContainer.putMetadataMapValue(MetadataRouter.ROUTER_TYPE_METADATA, MetadataRouter.KEY_METADATA_KEYS, metadataRouteKeys, TransitiveType.NONE);
request.setMetadataFailoverType(polarisMetadataRouterProperties.getFailOver());
}
}

@ -6,6 +6,12 @@
"defaultValue": true,
"description": "the switch for metadata router."
},
{
"name": "spring.cloud.polaris.router.metadata-router.failOver",
"type": "java.lang.String",
"defaultValue": "METADATAFAILOVERALL",
"description": "the fail over type for rule based router."
},
{
"name": "spring.cloud.polaris.router.nearby-router.enabled",
"type": "java.lang.Boolean",

Loading…
Cancel
Save