feat: support least connection loadbalancer

pull/1636/head
fishtailfu 2 months ago
parent e46372b601
commit e63e586553

@ -35,7 +35,7 @@ import org.springframework.context.annotation.Configuration;
* @author Haotian Zhang * @author Haotian Zhang
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties @EnableConfigurationProperties(PolarisShortestResponseTimeLoadBalancerProperties.class)
@ConditionalOnDiscoveryEnabled @ConditionalOnDiscoveryEnabled
@ConditionalOnPolarisEnabled @ConditionalOnPolarisEnabled
@ConditionalOnProperty(value = "spring.cloud.polaris.loadbalancer.enabled", matchIfMissing = true) @ConditionalOnProperty(value = "spring.cloud.polaris.loadbalancer.enabled", matchIfMissing = true)
@ -44,7 +44,7 @@ import org.springframework.context.annotation.Configuration;
public class PolarisLoadBalancerAutoConfiguration { public class PolarisLoadBalancerAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public PolarisShortestResponseTimeLoadBalancerConfigModifier polarisShortestResponseTimeLoadBalancerConfigModifier(PolairsShortestResponseTimeLoadBalancerProperties polairsShortestResponseTimeLoadBalancerProperties) { public PolarisShortestResponseTimeLoadBalancerConfigModifier polarisShortestResponseTimeLoadBalancerConfigModifier(PolarisShortestResponseTimeLoadBalancerProperties polarisShortestResponseTimeLoadBalancerProperties) {
return new PolarisShortestResponseTimeLoadBalancerConfigModifier(polairsShortestResponseTimeLoadBalancerProperties); return new PolarisShortestResponseTimeLoadBalancerConfigModifier(polarisShortestResponseTimeLoadBalancerProperties);
} }
} }

@ -7,16 +7,16 @@ import com.tencent.polaris.plugins.loadbalancer.shortestresponsetime.ShortestRes
public class PolarisShortestResponseTimeLoadBalancerConfigModifier implements PolarisConfigModifier { public class PolarisShortestResponseTimeLoadBalancerConfigModifier implements PolarisConfigModifier {
private final PolairsShortestResponseTimeLoadBalancerProperties polairsShortestResponseTimeLoadBalancerProperties; private final PolarisShortestResponseTimeLoadBalancerProperties polarisShortestResponseTimeLoadBalancerProperties;
public PolarisShortestResponseTimeLoadBalancerConfigModifier( public PolarisShortestResponseTimeLoadBalancerConfigModifier(
PolairsShortestResponseTimeLoadBalancerProperties polairsShortestResponseTimeLoadBalancerProperties) { PolarisShortestResponseTimeLoadBalancerProperties polarisShortestResponseTimeLoadBalancerProperties) {
this.polairsShortestResponseTimeLoadBalancerProperties = polairsShortestResponseTimeLoadBalancerProperties; this.polarisShortestResponseTimeLoadBalancerProperties = polarisShortestResponseTimeLoadBalancerProperties;
} }
@Override @Override
public void modify(ConfigurationImpl configuration) { public void modify(ConfigurationImpl configuration) {
ShortestResponseTimeLoadBalanceConfig config = new ShortestResponseTimeLoadBalanceConfig(); ShortestResponseTimeLoadBalanceConfig config = new ShortestResponseTimeLoadBalanceConfig();
config.setSlidePeriod(polairsShortestResponseTimeLoadBalancerProperties.getSlidePeriod()); config.setSlidePeriod(polarisShortestResponseTimeLoadBalancerProperties.getSlidePeriod());
configuration.getConsumer().getLoadbalancer().setPluginConfig("shortestResponseTime", configuration.getConsumer().getLoadbalancer().setPluginConfig("shortestResponseTime",
config); config);
} }

@ -4,7 +4,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix = "spring.cloud.polaris.loadbalancer") @ConfigurationProperties(prefix = "spring.cloud.polaris.loadbalancer")
public class PolairsShortestResponseTimeLoadBalancerProperties { public class PolarisShortestResponseTimeLoadBalancerProperties {
/** /**
* Slide period in milliseconds. * Slide period in milliseconds.
*/ */
@ -19,5 +19,4 @@ public class PolairsShortestResponseTimeLoadBalancerProperties {
this.slidePeriod = slidePeriod; this.slidePeriod = slidePeriod;
} }
} }
Loading…
Cancel
Save