refactor:optimize instance secure definition.

pull/1717/head
Haotian Zhang 2 weeks ago
parent 52cfba6039
commit effbad11a1

1
.gitignore vendored

@ -54,3 +54,4 @@ applog/
*/backup
/backup
backup
*/tls

@ -21,3 +21,4 @@
- [feat:Modify the annotations.](https://github.com/Tencent/spring-cloud-tencent/pull/1712)
- [fix: polaris.discovery.heartbeat.enabled not effective.](https://github.com/Tencent/spring-cloud-tencent/pull/1713)
- [feat: support config ratelimit addresses and remote task interval.](https://github.com/Tencent/spring-cloud-tencent/pull/1714)
- [refactor:optimize instance secure definition.](https://github.com/Tencent/spring-cloud-tencent/pull/1717)

@ -22,7 +22,6 @@ import java.util.Collections;
import java.util.Map;
import com.tencent.cloud.common.constant.OrderConstant;
import com.tencent.cloud.common.util.JacksonUtils;
import com.tencent.cloud.polaris.PolarisDiscoveryProperties;
import com.tencent.cloud.polaris.context.PolarisConfigModifier;
import com.tencent.cloud.polaris.context.config.extend.consul.ConsulProperties;
@ -126,10 +125,6 @@ public class ConsulDiscoveryConfigModifier implements PolarisConfigModifier {
String.valueOf(consulDiscoveryProperties.isPreferIpAddress()));
metadata.put(ConsulConstant.MetadataMapKey.IP_ADDRESS_KEY, consulDiscoveryProperties.getHostname());
}
if (tsfCoreProperties != null) {
// tags
metadata.put(ConsulConstant.MetadataMapKey.TAGS_KEY, JacksonUtils.serialize2Json(tsfCoreProperties.getTsfTags()));
}
configuration.getGlobal().getServerConnectors().add(serverConnectorConfig);
// discovery

@ -19,6 +19,7 @@ package com.tencent.cloud.polaris.registry.tsf;
import javax.servlet.ServletContext;
import com.tencent.cloud.common.tsf.ConditionalOnTsfConsulEnabled;
import com.tencent.cloud.polaris.PolarisDiscoveryProperties;
import com.tencent.cloud.polaris.context.PolarisSDKContextManager;
import com.tencent.cloud.polaris.context.config.extend.tsf.TsfCoreProperties;
import com.tencent.cloud.polaris.extend.consul.ConsulDiscoveryProperties;
@ -68,4 +69,11 @@ public class TsfDiscoveryRegistryAutoConfiguration {
public TsfApiPolarisRegistrationCustomizer tsfApiPolarisRegistrationCustomizer(ApplicationContext context) {
return new TsfApiPolarisRegistrationCustomizer(context);
}
@Bean
@ConditionalOnMissingBean
public TsfTagsRegistrationCustomizer tsfTagsRegistrationCustomizer(TsfCoreProperties tsfCoreProperties,
PolarisDiscoveryProperties polarisDiscoveryProperties) {
return new TsfTagsRegistrationCustomizer(tsfCoreProperties, polarisDiscoveryProperties);
}
}

@ -0,0 +1,64 @@
/*
* 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.tsf;
import java.util.HashMap;
import java.util.Map;
import com.tencent.cloud.common.util.ApplicationContextAwareUtils;
import com.tencent.cloud.polaris.PolarisDiscoveryProperties;
import com.tencent.cloud.polaris.context.config.extend.tsf.TsfCoreProperties;
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.polaris.plugins.connector.common.constant.ConsulConstant.MetadataMapKey.TAGS_KEY;
/**
* @author Haotian Zhang
*/
public class TsfTagsRegistrationCustomizer implements PolarisRegistrationCustomizer {
private final TsfCoreProperties tsfCoreProperties;
private final PolarisDiscoveryProperties polarisDiscoveryProperties;
public TsfTagsRegistrationCustomizer(TsfCoreProperties tsfCoreProperties, PolarisDiscoveryProperties polarisDiscoveryProperties) {
this.tsfCoreProperties = tsfCoreProperties;
this.polarisDiscoveryProperties = polarisDiscoveryProperties;
}
@Override
public void customize(PolarisRegistration registration) {
if (tsfCoreProperties == null) {
return;
}
String protocol = ApplicationContextAwareUtils.getProperties("tsf.discovery.scheme",
ApplicationContextAwareUtils.getProperties("spring.cloud.polaris.discovery.protocol", "http"));
if (StringUtils.isNotBlank(protocol)) {
tsfCoreProperties.setScheme(protocol);
polarisDiscoveryProperties.setProtocol(protocol);
}
Map<String, String> metadata = registration.getExtendedMetadata()
.computeIfAbsent(TAGS_KEY, k -> new HashMap<>());
for (String tag : tsfCoreProperties.getTsfTags()) {
metadata.put(TAGS_KEY, tag);
}
}
}

@ -3,8 +3,6 @@ server:
spring:
application:
name: consumer-demo
config:
import: optional:polaris
feign:
tsf:

@ -89,6 +89,8 @@ public class PolarisContextProperties {
@Value("${spring.cloud.polaris.service:${spring.application.name:}}")
private String service;
private Long apiTimeout = 1000L;
public Configuration configuration(List<PolarisConfigModifier> modifierList, Supplier<String> ipAddressSupplier, Supplier<Integer> portSupplier) {
// 1. Read user-defined polaris.yml configuration
ConfigurationImpl configuration = (ConfigurationImpl) ConfigAPIFactory
@ -105,6 +107,7 @@ public class PolarisContextProperties {
}
configuration.getGlobal().getAPI().setBindIP(defaultHost);
configuration.getGlobal().getAPI().setTimeout(apiTimeout);
Collection<PolarisConfigModifier> modifiers = modifierList;
modifiers = modifiers.stream()
@ -183,6 +186,14 @@ public class PolarisContextProperties {
this.service = service;
}
public Long getApiTimeout() {
return apiTimeout;
}
public void setApiTimeout(Long apiTimeout) {
this.apiTimeout = apiTimeout;
}
@Override
public String toString() {
return "PolarisContextProperties{" +
@ -194,6 +205,7 @@ public class PolarisContextProperties {
", enabled=" + enabled +
", namespace='" + namespace + '\'' +
((StringUtils.isBlank(this.service)) ? "" : ", service='" + service + '\'') +
", apiTimeout=" + apiTimeout +
'}';
}
}

@ -223,8 +223,6 @@ public class TsfCoreProperties {
if (StringUtils.isNotBlank(getInstanceGroup())) {
tags.add("group=" + getInstanceGroup());
}
//store the secure flag in the tags so that clients will be able to figure out whether to use http or https automatically
tags.add("secure=" + getScheme().equalsIgnoreCase("https"));
return tags;
}

Loading…
Cancel
Save