From e7dcf048c3b8c68c830c8c07edf3c7a02a59d2ca Mon Sep 17 00:00:00 2001 From: fishtailfu Date: Fri, 25 Jul 2025 17:51:18 +0800 Subject: [PATCH] fix: fix lb configuration on bootstrap step. --- .../PolarisLoadBalancerAutoConfiguration.java | 6 +-- ...oadBalancerBootstrapAutoConfiguration.java | 2 +- ...adBalancerPropertiesAutoConfiguration.java | 39 +++++++++++++++++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../TrafficMirroringPropertiesTest.java | 2 +- 5 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerPropertiesAutoConfiguration.java diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerAutoConfiguration.java index 149e21441..737e01991 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerAutoConfiguration.java @@ -42,9 +42,5 @@ import org.springframework.context.annotation.Configuration; @AutoConfigureAfter(LoadBalancerAutoConfiguration.class) @LoadBalancerClients(defaultConfiguration = PolarisLoadBalancerClientConfiguration.class) public class PolarisLoadBalancerAutoConfiguration { - @Bean - @ConditionalOnMissingBean - public PolarisShortestResponseTimeLoadBalancerConfigModifier polarisShortestResponseTimeLoadBalancerConfigModifier(PolarisLoadBalancerProperties polarisLoadBalancerProperties) { - return new PolarisShortestResponseTimeLoadBalancerConfigModifier(polarisLoadBalancerProperties.shortestResponseTime); - } + } diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerBootstrapAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerBootstrapAutoConfiguration.java index c16e76e09..e5de9c3bd 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerBootstrapAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerBootstrapAutoConfiguration.java @@ -29,7 +29,7 @@ import org.springframework.context.annotation.Import; */ @Configuration(proxyBeanMethods = false) @ConditionalOnProperty("spring.cloud.polaris.enabled") -@Import(PolarisLoadBalancerAutoConfiguration.class) +@Import(PolarisLoadBalancerPropertiesAutoConfiguration.class) public class PolarisLoadBalancerBootstrapAutoConfiguration { } diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerPropertiesAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerPropertiesAutoConfiguration.java new file mode 100644 index 000000000..12557c3c1 --- /dev/null +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancerPropertiesAutoConfiguration.java @@ -0,0 +1,39 @@ +/* + * Tencent is pleased to support the open source community by making spring-cloud-tencent available. + * + * Copyright (C) 2021 Tencent. All rights reserved. + * + * Licensed under the BSD 3-Clause License (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://opensource.org/licenses/BSD-3-Clause + * + * Unless required by applicable law or agreed to in writing, software distributed + * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + * CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package com.tencent.cloud.polaris.loadbalancer; + +import com.tencent.cloud.polaris.context.ConditionalOnPolarisEnabled; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * Auto-configuration of loadbalancer for Polaris. + * + * @author Haotian Zhang + */ +@Configuration(proxyBeanMethods = false) +@ConditionalOnPolarisEnabled +public class PolarisLoadBalancerPropertiesAutoConfiguration { + @Bean + @ConditionalOnMissingBean + public PolarisShortestResponseTimeLoadBalancerConfigModifier polarisShortestResponseTimeLoadBalancerConfigModifier(PolarisLoadBalancerProperties polarisLoadBalancerProperties) { + return new PolarisShortestResponseTimeLoadBalancerConfigModifier(polarisLoadBalancerProperties.shortestResponseTime); + } +} diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 04de47e6b..d252469f9 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -3,5 +3,6 @@ com.tencent.cloud.polaris.discovery.PolarisDiscoveryAutoConfiguration com.tencent.cloud.polaris.registry.PolarisServiceRegistryAutoConfiguration com.tencent.cloud.polaris.endpoint.PolarisDiscoveryEndpointAutoConfiguration com.tencent.cloud.polaris.loadbalancer.PolarisLoadBalancerAutoConfiguration +com.tencent.cloud.polaris.loadbalancer.PolarisLoadBalancerPropertiesAutoConfiguration com.tencent.cloud.polaris.registry.tsf.TsfDiscoveryRegistryAutoConfiguration com.tencent.cloud.polaris.eager.config.PolarisEagerLoadAutoConfiguration diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-traffic-mirroring-plugin/src/test/java/com/tencent/cloud/plugin/trafficmirroring/config/TrafficMirroringPropertiesTest.java b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-traffic-mirroring-plugin/src/test/java/com/tencent/cloud/plugin/trafficmirroring/config/TrafficMirroringPropertiesTest.java index 2aaf44cdd..871923e45 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-traffic-mirroring-plugin/src/test/java/com/tencent/cloud/plugin/trafficmirroring/config/TrafficMirroringPropertiesTest.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-traffic-mirroring-plugin/src/test/java/com/tencent/cloud/plugin/trafficmirroring/config/TrafficMirroringPropertiesTest.java @@ -32,7 +32,7 @@ public class TrafficMirroringPropertiesTest { TrafficMirroringProperties properties = new TrafficMirroringProperties(); assertThat(properties.isEnabled()).isTrue(); - assertThat(properties.getRequestPoolSize()).isEqualTo(4); + assertThat(properties.getRequestPoolSize()).isEqualTo(100); assertThat(properties.getRequestConnectionTimeout()).isEqualTo(5000L); }