From b7768182b5f5ffd23c46f62805f97a9eeb3c67e8 Mon Sep 17 00:00:00 2001 From: kupercheng Date: Wed, 9 Feb 2022 20:29:30 +0800 Subject: [PATCH] the server address only support one ip #35 https://github.com/Tencent/spring-cloud-tencent/issues/35 --- .../context/PolarisContextConfiguration.java | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/spring-cloud-tencent-starters/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextConfiguration.java b/spring-cloud-tencent-starters/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextConfiguration.java index 6c01dded..76fd796c 100644 --- a/spring-cloud-tencent-starters/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextConfiguration.java +++ b/spring-cloud-tencent-starters/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextConfiguration.java @@ -37,6 +37,8 @@ import org.springframework.context.annotation.Bean; @EnableConfigurationProperties(PolarisContextProperties.class) public class PolarisContextConfiguration { + private static final String ADDRESS_SEPARATOR = ","; + @Bean(name = "polarisContext", initMethod = "init", destroyMethod = "destroy") @ConditionalOnMissingBean public SDKContext polarisContext(PolarisContextProperties properties) throws PolarisException { @@ -57,11 +59,24 @@ public class PolarisContextConfiguration { @Override public void modify(ConfigurationImpl configuration) { if (!StringUtils.isBlank(properties.getAddress())) { - URI uri = URI.create(properties.getAddress()); - List addresses = new ArrayList<>(); - addresses.add(uri.getAuthority()); - configuration.getGlobal().getServerConnector().setAddresses(addresses); + configuration.getGlobal().getServerConnector().setAddresses(getAddressList(properties.getAddress())); + } + } + + private List getAddressList(String addressInfo) { + List addressList = new ArrayList<>(); + //if not contain ',' then set one ip + if (!properties.getAddress().contains(ADDRESS_SEPARATOR)) { + URI uri = URI.create(addressInfo.trim()); + addressList.add(uri.getAuthority()); + } else { + String[] addresses = addressInfo.split(ADDRESS_SEPARATOR); + for (String address : addresses) { + URI uri = URI.create(address.trim()); + addressList.add(uri.getAuthority()); + } } + return addressList; } }