fix: refract instance metadata adding

pull/1718/head
fishtailfu 1 week ago
parent 9583ba35d5
commit 3cc63c58e0

@ -22,4 +22,5 @@
- [feat: support config ratelimit addresses and remote task interval.](https://github.com/Tencent/spring-cloud-tencent/pull/1679)
- [docs:optimize tsf example.](https://github.com/Tencent/spring-cloud-tencent/pull/1710)
- [feat:support TSF certificate manager.](https://github.com/Tencent/spring-cloud-tencent/pull/1715)
- [feat:support tsf unit.](https://github.com/Tencent/spring-cloud-tencent/pull/1681)
- [feat:support tsf unit.](https://github.com/Tencent/spring-cloud-tencent/pull/1681)
- [feat: support service registry and discovery with Polaris and Nacos](https://github.com/Tencent/spring-cloud-tencent/pull/1718)

@ -62,7 +62,7 @@ public class NacosConfigModifier implements PolarisConfigModifier {
@Override
public void modify(ConfigurationImpl configuration) {
if (Objects.isNull(nacosContextProperties) || !nacosContextProperties.isEnabled()) {
if (Objects.isNull(nacosContextProperties) || !nacosContextProperties.isDiscoveryEnabled()) {
return;
}
if (CollectionUtils.isEmpty(configuration.getGlobal().getServerConnectors())) {

@ -43,9 +43,7 @@ public class NacosContextProperties {
*/
public static final String DEFAULT_NAMESPACE = "public";
private boolean enabled = false;
@Value("${spring.cloud.nacos.discovery.enabled:#{'true'}}")
@Value("${spring.cloud.nacos.discovery.enabled:#{'false'}}")
private boolean discoveryEnabled;
/**
@ -105,13 +103,6 @@ public class NacosContextProperties {
private String contextPath;
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public boolean isRegisterEnabled() {
return registerEnabled;
@ -211,8 +202,7 @@ public class NacosContextProperties {
@Override
public String toString() {
return "NacosContextProperties{" +
"enabled=" + enabled +
", discoveryEnabled=" + discoveryEnabled +
"discoveryEnabled=" + discoveryEnabled +
", registerEnabled=" + registerEnabled +
", serverAddr='" + serverAddr + '\'' +
", ephemeral=" + ephemeral +

@ -102,19 +102,6 @@ public class PolarisRegistration implements Registration {
// generate metadata
if (CollectionUtils.isEmpty(metadata)) {
Map<String, String> instanceMetadata = new HashMap<>();
// put internal-nacos-cluster if necessary
if (Objects.nonNull(nacosContextProperties)) {
String clusterName = nacosContextProperties.getClusterName();
if (StringUtils.isNotBlank(clusterName) && !DEFAULT_CLUSTER.equals(clusterName)) {
instanceMetadata.put(NACOS_CLUSTER, clusterName);
}
String groupName = nacosContextProperties.getGroup();
if (StringUtils.isNotBlank(groupName) && !DEFAULT_GROUP.equals(groupName)) {
instanceMetadata.put(NACOS_GROUP, groupName);
}
}
instanceMetadata.putAll(staticMetadataManager.getMergedStaticMetadata());
this.metadata = instanceMetadata;
@ -129,7 +116,7 @@ public class PolarisRegistration implements Registration {
if (null != consulDiscoveryProperties) {
registerEnabled |= consulDiscoveryProperties.isRegister();
}
if (null != nacosContextProperties && nacosContextProperties.isEnabled()) {
if (null != nacosContextProperties && nacosContextProperties.isDiscoveryEnabled()) {
registerEnabled |= nacosContextProperties.isRegisterEnabled();
}
}

@ -0,0 +1,37 @@
/*
* 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.registry.nacos;
import com.tencent.cloud.polaris.extend.nacos.NacosContextProperties;
import com.tencent.cloud.polaris.registry.PolarisServiceRegistryAutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration(proxyBeanMethods = false)
@AutoConfigureBefore(PolarisServiceRegistryAutoConfiguration.class)
public class NacosDiscoveryRegistryAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public NacosPolarisRegistrationCustomizer nacosPolarisRegistrationCustomizer(
NacosContextProperties nacosContextProperties) {
return new NacosPolarisRegistrationCustomizer(nacosContextProperties);
}
}

@ -0,0 +1,53 @@
/*
* 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.registry.nacos;
import java.util.Map;
import java.util.Objects;
import com.tencent.cloud.polaris.extend.nacos.NacosContextProperties;
import com.tencent.cloud.polaris.registry.PolarisRegistration;
import com.tencent.cloud.polaris.registry.PolarisRegistrationCustomizer;
import com.tencent.polaris.api.utils.StringUtils;
import static com.tencent.cloud.polaris.extend.nacos.NacosContextProperties.DEFAULT_CLUSTER;
import static com.tencent.cloud.polaris.extend.nacos.NacosContextProperties.DEFAULT_GROUP;
import static com.tencent.polaris.plugins.connector.common.constant.NacosConstant.MetadataMapKey.NACOS_CLUSTER_KEY;
import static com.tencent.polaris.plugins.connector.common.constant.NacosConstant.MetadataMapKey.NACOS_GROUP_KEY;
public class NacosPolarisRegistrationCustomizer implements PolarisRegistrationCustomizer {
NacosContextProperties nacosContextProperties;
public NacosPolarisRegistrationCustomizer(NacosContextProperties nacosContextProperties) {
this.nacosContextProperties = nacosContextProperties;
}
@Override
public void customize(PolarisRegistration registration) {
// put internal-nacos-cluster if necessary
Map<String, String> instanceMetadata = registration.getMetadata();
if (Objects.nonNull(nacosContextProperties)) {
String clusterName = nacosContextProperties.getClusterName();
if (StringUtils.isNotBlank(clusterName) && !DEFAULT_CLUSTER.equals(clusterName)) {
instanceMetadata.put(NACOS_CLUSTER_KEY, clusterName);
}
String groupName = nacosContextProperties.getGroup();
if (StringUtils.isNotBlank(groupName) && !DEFAULT_GROUP.equals(groupName)) {
instanceMetadata.put(NACOS_GROUP_KEY, groupName);
}
}
}
}

@ -6,3 +6,4 @@ 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
com.tencent.cloud.polaris.registry.nacos.NacosDiscoveryRegistryAutoConfiguration

@ -61,7 +61,6 @@ public class NacosContextPropertiesTest {
@Test
public void testDefaultInitialization() {
assertThat(nacosContextProperties).isNotNull();
assertThat(nacosContextProperties.isEnabled()).isTrue();
assertThat(nacosContextProperties.getServerAddr()).isEqualTo("127.0.0.1:8848");
assertThat(nacosContextProperties.isRegisterEnabled()).isTrue();
assertThat(nacosContextProperties.isDiscoveryEnabled()).isTrue();

@ -82,7 +82,6 @@ public class PolarisRegistrationTest {
// mock NacosContextProperties
nacosContextProperties = mock(NacosContextProperties.class);
doReturn(true).when(nacosContextProperties).isEnabled();
doReturn(true).when(nacosContextProperties).isRegisterEnabled();
doReturn("/").when(nacosContextProperties).getContextPath();
doReturn("cluster").when(nacosContextProperties).getClusterName();

Loading…
Cancel
Save