feat:support polaris server nearby backup LB. (#1630)

Co-authored-by: Haotian Zhang <skyebefreeman@qq.com>
pull/1641/head
Fishtail 2 months ago committed by GitHub
parent dbcb9a3c1f
commit 1a86554c65
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -10,3 +10,4 @@
- [feat:support stat reporting path aggregation.](https://github.com/Tencent/spring-cloud-tencent/pull/1609)
- [feat:support instance detect.](https://github.com/Tencent/spring-cloud-tencent/pull/1619)
- [fix: fix loadbalancer metadata type.](https://github.com/Tencent/spring-cloud-tencent/pull/1626)
- [feat:support polaris server nearby backup LB.](https://github.com/Tencent/spring-cloud-tencent/pull/1630)

@ -114,6 +114,8 @@ public class ConfigurationModifier implements PolarisConfigurationConfigModifier
}
connectorConfig.setAddresses(configAddresses);
connectorConfig.setLbPolicy(polarisContextProperties.getAddressLbPolicy());
connectorConfig.setServerSwitchInterval(polarisContextProperties.getServerSwitchInterval());
if (StringUtils.isNotEmpty(polarisConfigProperties.getToken())) {
connectorConfig.setToken(polarisConfigProperties.getToken());

@ -26,6 +26,7 @@ import com.tencent.cloud.polaris.context.config.PolarisContextProperties;
import com.tencent.polaris.api.utils.CollectionUtils;
import com.tencent.polaris.api.utils.StringUtils;
import com.tencent.polaris.factory.config.ConfigurationImpl;
import com.tencent.polaris.factory.config.global.ServerConnectorConfigImpl;
/**
* Modify polaris server address.
@ -48,7 +49,10 @@ public class ModifyAddress implements PolarisConfigModifier {
List<String> addresses = AddressUtils.parseAddressList(properties.getAddress());
configuration.getGlobal().getServerConnector().setAddresses(addresses);
ServerConnectorConfigImpl serverConnectorConfig = configuration.getGlobal().getServerConnector();
serverConnectorConfig.setAddresses(addresses);
serverConnectorConfig.setLbPolicy(properties.getAddressLbPolicy());
serverConnectorConfig.setServerSwitchInterval(properties.getServerSwitchInterval());
if (CollectionUtils.isEmpty(configuration.getGlobal().getServerConnectors())) {
configuration.getGlobal().setServerConnectors(new ArrayList<>());
}

@ -26,6 +26,7 @@ import java.util.stream.Collectors;
import com.tencent.cloud.polaris.context.PolarisConfigModifier;
import com.tencent.polaris.api.config.ConfigProvider;
import com.tencent.polaris.api.config.Configuration;
import com.tencent.polaris.api.config.consumer.LoadBalanceConfig;
import com.tencent.polaris.api.utils.CollectionUtils;
import com.tencent.polaris.api.utils.StringUtils;
import com.tencent.polaris.factory.ConfigAPIFactory;
@ -48,6 +49,16 @@ public class PolarisContextProperties {
@Value("${spring.cloud.polaris.address:}")
private String address;
/**
* polaris server address load balance policy.
*/
private String addressLbPolicy = LoadBalanceConfig.LOAD_BALANCE_ROUND_ROBIN;
/**
* polaris server switch interval.
*/
private long serverSwitchInterval = 600000;
/**
* current server local ip address.
*/
@ -116,6 +127,22 @@ public class PolarisContextProperties {
this.address = address;
}
public String getAddressLbPolicy() {
return addressLbPolicy;
}
public void setAddressLbPolicy(String addressLbPolicy) {
this.addressLbPolicy = addressLbPolicy;
}
public long getServerSwitchInterval() {
return serverSwitchInterval;
}
public void setServerSwitchInterval(long serverSwitchInterval) {
this.serverSwitchInterval = serverSwitchInterval;
}
public String getLocalIpAddress() {
return localIpAddress;
}
@ -160,6 +187,8 @@ public class PolarisContextProperties {
public String toString() {
return "PolarisContextProperties{" +
"address='" + address + '\'' +
", addressLbPolicy='" + addressLbPolicy + '\'' +
", serverSwitchInterval=" + serverSwitchInterval +
", localIpAddress='" + localIpAddress + '\'' +
((this.localPort == null || this.localPort <= 0) ? "" : ", localPort=" + localPort) +
", enabled=" + enabled +

@ -88,5 +88,19 @@
"defaultValue": "polaris.pushgateway"
}
],
"hints": []
"hints": [
{
"name": "spring.cloud.polaris.address-lb-policy",
"values": [
{
"value": "roundRobin",
"description": "Round robin policy."
},
{
"value": "nearbyBackup",
"description": "Nearby backup policy."
}
]
}
]
}

Loading…
Cancel
Save