From 3e69ccfb606e00da449ca84cca43935ebee51d21 Mon Sep 17 00:00:00 2001 From: cheese8 Date: Fri, 15 Jul 2022 23:51:56 +0800 Subject: [PATCH 01/11] graceful registration after ApplicationReadyEvent --- .../PolarisAutoServiceRegistration.java | 9 +- .../registry/PolarisServiceRegistry.java | 8 +- ...larisServiceRegistryAutoConfiguration.java | 19 +- .../AbstractGracefulServiceRegistration.java | 264 ++++++++++++++++++ .../graceful/GracefulServiceRegistration.java | 5 + ...lServiceRegistrationAutoConfiguration.java | 32 +++ ...cefulServiceRegistrationConfiguration.java | 12 + ...GracefulServiceRegistrationProperties.java | 48 ++++ .../main/resources/META-INF/spring.factories | 3 +- ...larisGracefulServiceRegistrationTest.java} | 7 +- .../src/main/resources/bootstrap.yml | 5 +- .../caller/DiscoveryCallerService.java | 4 +- .../discovery/service/caller/MyListenery.java | 59 ++++ .../src/main/resources/bootstrap.yml | 5 + 14 files changed, 454 insertions(+), 26 deletions(-) create mode 100644 spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java create mode 100644 spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistration.java create mode 100644 spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationAutoConfiguration.java create mode 100644 spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationConfiguration.java create mode 100644 spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationProperties.java rename spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/{PolarisAutoServiceRegistrationTest.java => PolarisGracefulServiceRegistrationTest.java} (94%) create mode 100644 spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/MyListenery.java diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java index 719eb4e05..a04a10bcb 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java @@ -17,11 +17,10 @@ package com.tencent.cloud.polaris.registry; +import com.tencent.cloud.polaris.registry.graceful.AbstractGracefulServiceRegistration; +import com.tencent.cloud.polaris.registry.graceful.GracefulServiceRegistrationProperties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - -import org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration; -import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationProperties; import org.springframework.cloud.client.serviceregistry.Registration; import org.springframework.cloud.client.serviceregistry.ServiceRegistry; import org.springframework.util.StringUtils; @@ -31,14 +30,14 @@ import org.springframework.util.StringUtils; * * @author Haotian Zhang, Andrew Shan, Jie Cheng */ -public class PolarisAutoServiceRegistration extends AbstractAutoServiceRegistration { +public class PolarisAutoServiceRegistration extends AbstractGracefulServiceRegistration { private static final Logger LOG = LoggerFactory.getLogger(PolarisAutoServiceRegistration.class); private final PolarisRegistration registration; public PolarisAutoServiceRegistration(ServiceRegistry serviceRegistry, - AutoServiceRegistrationProperties autoServiceRegistrationProperties, + GracefulServiceRegistrationProperties autoServiceRegistrationProperties, PolarisRegistration registration) { super(serviceRegistry, autoServiceRegistrationProperties); this.registration = registration; diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java index 5ac48bf71..a02f0b190 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java @@ -18,9 +18,6 @@ package com.tencent.cloud.polaris.registry; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; - import com.tencent.cloud.common.metadata.StaticMetadataManager; import com.tencent.cloud.polaris.PolarisDiscoveryProperties; import com.tencent.cloud.polaris.discovery.PolarisDiscoveryHandler; @@ -36,11 +33,13 @@ import com.tencent.polaris.client.util.NamedThreadFactory; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import org.springframework.beans.BeanUtils; import org.springframework.cloud.client.serviceregistry.Registration; import org.springframework.cloud.client.serviceregistry.ServiceRegistry; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; + import static java.util.concurrent.TimeUnit.MILLISECONDS; import static org.springframework.util.ReflectionUtils.rethrowRuntimeException; @@ -84,6 +83,7 @@ public class PolarisServiceRegistry implements ServiceRegistry { return; } // Register instance. + System.out.println("事件注册"); InstanceRegisterRequest instanceRegisterRequest = new InstanceRegisterRequest(); instanceRegisterRequest.setNamespace(polarisDiscoveryProperties.getNamespace()); instanceRegisterRequest.setService(registration.getServiceId()); diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java index 6533edf93..ceb14e19e 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java @@ -23,16 +23,15 @@ import com.tencent.cloud.polaris.PolarisDiscoveryProperties; import com.tencent.cloud.polaris.discovery.PolarisDiscoveryAutoConfiguration; import com.tencent.cloud.polaris.discovery.PolarisDiscoveryHandler; import com.tencent.cloud.polaris.extend.consul.ConsulContextProperties; +import com.tencent.cloud.polaris.registry.graceful.GracefulServiceRegistrationAutoConfiguration; +import com.tencent.cloud.polaris.registry.graceful.GracefulServiceRegistrationConfiguration; +import com.tencent.cloud.polaris.registry.graceful.GracefulServiceRegistrationProperties; import com.tencent.polaris.client.api.SDKContext; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationAutoConfiguration; -import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration; -import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -44,9 +43,9 @@ import org.springframework.context.annotation.Configuration; @Configuration(proxyBeanMethods = false) @EnableConfigurationProperties @ConditionalOnPolarisRegisterEnabled -@ConditionalOnProperty(value = "spring.cloud.service-registry.auto-registration.enabled", matchIfMissing = true) -@AutoConfigureAfter({AutoServiceRegistrationConfiguration.class, - AutoServiceRegistrationAutoConfiguration.class, +@ConditionalOnProperty(value = "spring.cloud.service-registry.graceful-registration.enabled", matchIfMissing = false) +@AutoConfigureAfter({GracefulServiceRegistrationConfiguration.class, + GracefulServiceRegistrationAutoConfiguration.class, PolarisDiscoveryAutoConfiguration.class}) public class PolarisServiceRegistryAutoConfiguration { @@ -58,7 +57,7 @@ public class PolarisServiceRegistryAutoConfiguration { } @Bean - @ConditionalOnBean(AutoServiceRegistrationProperties.class) + @ConditionalOnBean(GracefulServiceRegistrationProperties.class) public PolarisRegistration polarisRegistration( PolarisDiscoveryProperties polarisDiscoveryProperties, @Autowired(required = false) ConsulContextProperties consulContextProperties, @@ -67,10 +66,10 @@ public class PolarisServiceRegistryAutoConfiguration { } @Bean - @ConditionalOnBean(AutoServiceRegistrationProperties.class) + @ConditionalOnBean(GracefulServiceRegistrationProperties.class) public PolarisAutoServiceRegistration polarisAutoServiceRegistration( PolarisServiceRegistry registry, - AutoServiceRegistrationProperties autoServiceRegistrationProperties, + GracefulServiceRegistrationProperties autoServiceRegistrationProperties, PolarisRegistration registration) { return new PolarisAutoServiceRegistration(registry, autoServiceRegistrationProperties, registration); } diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java new file mode 100644 index 000000000..22541b02c --- /dev/null +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java @@ -0,0 +1,264 @@ +package com.tencent.cloud.polaris.registry.graceful; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.BeansException; +import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.boot.web.context.ConfigurableWebServerApplicationContext; +import org.springframework.cloud.client.discovery.ManagementServerPortUtils; +import org.springframework.cloud.client.discovery.event.InstancePreRegisteredEvent; +import org.springframework.cloud.client.discovery.event.InstanceRegisteredEvent; +import org.springframework.cloud.client.serviceregistry.Registration; +import org.springframework.cloud.client.serviceregistry.ServiceRegistry; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.ApplicationListener; +import org.springframework.core.env.Environment; + +import javax.annotation.PreDestroy; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; + + +/** + * Lifecycle methods that may be useful and common to {@link ServiceRegistry} + * implementations. + * + * TODO: Document the lifecycle. + * + * @param Registration type passed to the {@link ServiceRegistry}. + * @author Spencer Gibb + */ +public abstract class AbstractGracefulServiceRegistration + implements GracefulServiceRegistration, ApplicationContextAware, + ApplicationListener { + + private static final Log logger = LogFactory + .getLog(AbstractGracefulServiceRegistration.class); + + private final ServiceRegistry serviceRegistry; + + private boolean autoStartup = true; + + private AtomicBoolean running = new AtomicBoolean(false); + + private int order = 0; + + private ApplicationContext context; + + private Environment environment; + + private AtomicInteger port = new AtomicInteger(0); + + private GracefulServiceRegistrationProperties properties; + + @Deprecated + protected AbstractGracefulServiceRegistration(ServiceRegistry serviceRegistry) { + this.serviceRegistry = serviceRegistry; + } + + protected AbstractGracefulServiceRegistration(ServiceRegistry serviceRegistry, + GracefulServiceRegistrationProperties properties) { + this.serviceRegistry = serviceRegistry; + this.properties = properties; + } + + protected ApplicationContext getContext() { + return this.context; + } + + @Override + @SuppressWarnings("deprecation") + public void onApplicationEvent(ApplicationReadyEvent event) { + bind(event); + } + + @Deprecated + public void bind(ApplicationReadyEvent event) { + ApplicationContext context = event.getApplicationContext(); + if (context instanceof ConfigurableWebServerApplicationContext) { + if ("management".equals(((ConfigurableWebServerApplicationContext) context) + .getServerNamespace())) { + return; + } + } + this.port.compareAndSet(0, Integer.parseInt(environment.getProperty("server.port"))); + this.start(); + } + + @Override + public void setApplicationContext(ApplicationContext applicationContext) + throws BeansException { + this.context = applicationContext; + this.environment = this.context.getEnvironment(); + } + + @Deprecated + protected Environment getEnvironment() { + return this.environment; + } + + @Deprecated + protected AtomicInteger getPort() { + return this.port; + } + + public boolean isAutoStartup() { + return this.autoStartup; + } + + public void start() { + if (!isEnabled()) { + if (logger.isDebugEnabled()) { + logger.debug("Discovery Lifecycle disabled. Not starting"); + } + return; + } + + // only initialize if nonSecurePort is greater than 0 and it isn't already running + // because of containerPortInitializer below + if (!this.running.get()) { + this.context.publishEvent( + new InstancePreRegisteredEvent(this, getRegistration())); + register(); + if (shouldRegisterManagement()) { + registerManagement(); + } + this.context.publishEvent( + new InstanceRegisteredEvent<>(this, getConfiguration())); + this.running.compareAndSet(false, true); + } + + } + + /** + * @return Whether the management service should be registered with the + * {@link ServiceRegistry}. + */ + protected boolean shouldRegisterManagement() { + if (this.properties == null || this.properties.isRegisterManagement()) { + return getManagementPort() != null + && ManagementServerPortUtils.isDifferent(this.context); + } + return false; + } + + /** + * @return The object used to configure the registration. + */ + @Deprecated + protected abstract Object getConfiguration(); + + /** + * @return True, if this is enabled. + */ + protected abstract boolean isEnabled(); + + /** + * @return The serviceId of the Management Service. + */ + @Deprecated + protected String getManagementServiceId() { + // TODO: configurable management suffix + return this.context.getId() + ":management"; + } + + /** + * @return The service name of the Management Service. + */ + @Deprecated + protected String getManagementServiceName() { + // TODO: configurable management suffix + return getAppName() + ":management"; + } + + /** + * @return The management server port. + */ + @Deprecated + protected Integer getManagementPort() { + return ManagementServerPortUtils.getPort(this.context); + } + + /** + * @return The app name (currently the spring.application.name property). + */ + @Deprecated + protected String getAppName() { + return this.environment.getProperty("spring.application.name", "application"); + } + + @PreDestroy + public void destroy() { + stop(); + } + + public boolean isRunning() { + return this.running.get(); + } + + protected AtomicBoolean getRunning() { + return this.running; + } + + public int getOrder() { + return this.order; + } + + public int getPhase() { + return 0; + } + + protected ServiceRegistry getServiceRegistry() { + return this.serviceRegistry; + } + + protected abstract R getRegistration(); + + protected abstract R getManagementRegistration(); + + /** + * Register the local service with the {@link ServiceRegistry}. + */ + protected void register() { + this.serviceRegistry.register(getRegistration()); + } + + /** + * Register the local management service with the {@link ServiceRegistry}. + */ + protected void registerManagement() { + R registration = getManagementRegistration(); + if (registration != null) { + this.serviceRegistry.register(registration); + } + } + + /** + * De-register the local service with the {@link ServiceRegistry}. + */ + protected void deregister() { + this.serviceRegistry.deregister(getRegistration()); + } + + /** + * De-register the local management service with the {@link ServiceRegistry}. + */ + protected void deregisterManagement() { + R registration = getManagementRegistration(); + if (registration != null) { + this.serviceRegistry.deregister(registration); + } + } + + public void stop() { + if (this.getRunning().compareAndSet(true, false) && isEnabled()) { + deregister(); + if (shouldRegisterManagement()) { + deregisterManagement(); + } + this.serviceRegistry.close(); + } + } + +} \ No newline at end of file diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistration.java new file mode 100644 index 000000000..b54d91075 --- /dev/null +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistration.java @@ -0,0 +1,5 @@ +package com.tencent.cloud.polaris.registry.graceful; + +public interface GracefulServiceRegistration { + +} diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationAutoConfiguration.java new file mode 100644 index 000000000..7a1dfcc75 --- /dev/null +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationAutoConfiguration.java @@ -0,0 +1,32 @@ +package com.tencent.cloud.polaris.registry.graceful; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; + +import javax.annotation.PostConstruct; + +/** + * @author Spencer Gibb + */ +@Configuration(proxyBeanMethods = false) +@Import(GracefulServiceRegistrationConfiguration.class) +@ConditionalOnProperty(value = "spring.cloud.service-registry.graceful-registration.enabled") +public class GracefulServiceRegistrationAutoConfiguration { + + @Autowired(required = false) + private GracefulServiceRegistration gracefulServiceRegistration; + + @Autowired + private GracefulServiceRegistrationProperties properties; + + @PostConstruct + protected void init() { + if (this.gracefulServiceRegistration == null && this.properties.isFailFast()) { + throw new IllegalStateException("Graceful Service Registration has " + + "been requested, but there is no GracefulServiceRegistration bean"); + } + } + +} \ No newline at end of file diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationConfiguration.java new file mode 100644 index 000000000..8f502754f --- /dev/null +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationConfiguration.java @@ -0,0 +1,12 @@ +package com.tencent.cloud.polaris.registry.graceful; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Configuration(proxyBeanMethods = false) +@EnableConfigurationProperties(GracefulServiceRegistrationProperties.class) +@ConditionalOnProperty(value = "spring.cloud.service-registry.graceful-registration.enabled") +public class GracefulServiceRegistrationConfiguration { + +} diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationProperties.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationProperties.java new file mode 100644 index 000000000..07258130a --- /dev/null +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationProperties.java @@ -0,0 +1,48 @@ +package com.tencent.cloud.polaris.registry.graceful; + +import org.springframework.boot.context.properties.ConfigurationProperties; + +@ConfigurationProperties("spring.cloud.service-registry.graceful-registration") +public class GracefulServiceRegistrationProperties { + + /** Whether service graceful-registration is enabled. Defaults to true. */ + private boolean enabled = true; + + /** Whether to register the management as a service. Defaults to true. */ + private boolean registerManagement = true; + + /** + * Whether startup fails if there is no AutoServiceRegistration. Defaults to false. + */ + private boolean failFast = false; + + public boolean isEnabled() { + return this.enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public boolean isRegisterManagement() { + return this.registerManagement; + } + + public void setRegisterManagement(boolean registerManagement) { + this.registerManagement = registerManagement; + } + + @Deprecated + public boolean shouldRegisterManagement() { + return this.registerManagement; + } + + public boolean isFailFast() { + return this.failFast; + } + + public void setFailFast(boolean failFast) { + this.failFast = failFast; + } + +} \ No newline at end of file diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/spring.factories b/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/spring.factories index e8deb25e8..1e868c2e3 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/spring.factories +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/spring.factories @@ -3,6 +3,7 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.tencent.cloud.polaris.discovery.PolarisDiscoveryAutoConfiguration,\ com.tencent.cloud.polaris.ribbon.PolarisDiscoveryRibbonAutoConfiguration,\ com.tencent.cloud.polaris.registry.PolarisServiceRegistryAutoConfiguration,\ - com.tencent.cloud.polaris.endpoint.PolarisDiscoveryEndpointAutoConfiguration + com.tencent.cloud.polaris.endpoint.PolarisDiscoveryEndpointAutoConfiguration,\ + com.tencent.cloud.polaris.registry.graceful.GracefulServiceRegistrationAutoConfiguration org.springframework.cloud.bootstrap.BootstrapConfiguration=\ com.tencent.cloud.polaris.DiscoveryPropertiesBootstrapAutoConfiguration diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistrationTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisGracefulServiceRegistrationTest.java similarity index 94% rename from spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistrationTest.java rename to spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisGracefulServiceRegistrationTest.java index 1414b3d27..61a9c5dd9 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistrationTest.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisGracefulServiceRegistrationTest.java @@ -18,13 +18,12 @@ package com.tencent.cloud.polaris.registry; import com.tencent.cloud.polaris.PolarisDiscoveryProperties; +import com.tencent.cloud.polaris.registry.graceful.GracefulServiceRegistrationProperties; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - -import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationProperties; import org.springframework.cloud.client.serviceregistry.Registration; import org.springframework.cloud.client.serviceregistry.ServiceRegistry; import org.springframework.context.ApplicationContext; @@ -45,13 +44,13 @@ import static org.mockito.Mockito.doReturn; * @author Haotian Zhang */ @RunWith(MockitoJUnitRunner.class) -public class PolarisAutoServiceRegistrationTest { +public class PolarisGracefulServiceRegistrationTest { @Mock private ServiceRegistry serviceRegistry; @Mock - private AutoServiceRegistrationProperties autoServiceRegistrationProperties; + private GracefulServiceRegistrationProperties autoServiceRegistrationProperties; @Mock private PolarisDiscoveryProperties polarisDiscoveryProperties; diff --git a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-callee-service/src/main/resources/bootstrap.yml b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-callee-service/src/main/resources/bootstrap.yml index 75b4e33d9..6fdc919b2 100644 --- a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-callee-service/src/main/resources/bootstrap.yml +++ b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-callee-service/src/main/resources/bootstrap.yml @@ -5,12 +5,15 @@ spring: name: DiscoveryCalleeService cloud: polaris: - address: grpc://183.47.111.80:8091 + address: grpc://127.0.0.1:8091 namespace: default enabled: true discovery: enabled: true register: true + service-registry: + graceful-registration: + enabled: true tencent: metadata: content: diff --git a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/DiscoveryCallerService.java b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/DiscoveryCallerService.java index 0eae4b427..dd7498e28 100644 --- a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/DiscoveryCallerService.java +++ b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/DiscoveryCallerService.java @@ -34,7 +34,9 @@ import org.springframework.web.client.RestTemplate; public class DiscoveryCallerService { public static void main(String[] args) { - SpringApplication.run(DiscoveryCallerService.class, args); + SpringApplication app = new SpringApplication(DiscoveryCallerService.class); + app.addListeners(new MyListenery()); + app.run(args); } @Bean diff --git a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/MyListenery.java b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/MyListenery.java new file mode 100644 index 000000000..1859266bd --- /dev/null +++ b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/MyListenery.java @@ -0,0 +1,59 @@ +package com.tencent.cloud.polaris.discovery.service.caller; + +import org.springframework.boot.web.context.WebServerInitializedEvent; +import org.springframework.boot.web.reactive.context.ReactiveWebServerInitializedEvent; +import org.springframework.boot.web.servlet.context.ServletWebServerInitializedEvent; +import org.springframework.context.ApplicationEvent; +import org.springframework.context.ApplicationListener; + +public class MyListenery implements ApplicationListener { + + @Override + public void onApplicationEvent(ApplicationEvent event) { +// ApplicationStartingEvent//启动开始的时候执行的事件 +// ApplicationEnvironmentPreparedEvent//上下文创建之前运行的事件 +// ApplicationContextInitializedEvent// +// ApplicationPreparedEvent//上下文创建完成,注入的bean还没加载完成 +// ContextRefreshedEvent//上下文刷新 +// ServletWebServerInitializedEvent//web服务器初始化 +// ApplicationStartedEvent// +// ApplicationReadyEvent//启动成功 +// ApplicationFailedEvent//在启动Spring发生异常时触发 + switch (event.getClass().getSimpleName()){ + case "ApplicationStartingEvent": + System.out.println("事件ApplicationStartingEvent"); + break; + case "ApplicationEnvironmentPreparedEvent": + System.out.println("事件ApplicationEnvironmentPreparedEvent"); + break; + case "ApplicationContextInitializedEvent": + System.out.println("事件ApplicationContextInitializedEvent"); + break; + case "ApplicationPreparedEvent": + System.out.println("事件ApplicationPreparedEvent"); + break; + case "ContextRefreshedEvent": + System.out.println("事件ContextRefreshedEvent"); + break; + case "ApplicationStartedEvent": + System.out.println("事件ApplicationStartedEvent"); + break; + case "ServletWebServerInitializedEvent": + if( event instanceof WebServerInitializedEvent){ + System.out.println("事件WebServerInitializedEvent"); + } + if( event instanceof ServletWebServerInitializedEvent){ + System.out.println("事件ServletWebServerInitializedEvent"); + } + if( event instanceof ReactiveWebServerInitializedEvent){ + System.out.println("事件ReactiveWebServerInitializedEvent"); + } + break; + case "ApplicationReadyEvent": + System.out.println("事件ApplicationReadyEvent"); + break; + case "ApplicationFailedEvent": + break; + } + } +} \ No newline at end of file diff --git a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/resources/bootstrap.yml b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/resources/bootstrap.yml index 544193b7e..27ed26d7d 100644 --- a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/resources/bootstrap.yml +++ b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/resources/bootstrap.yml @@ -5,6 +5,11 @@ spring: application: name: DiscoveryCallerService cloud: + service-registry: + graceful-registration: + enabled: true + auto-registration: + enabled: false polaris: address: grpc://183.47.111.80:8091 namespace: default From 41515f95a86b9d523d50fdc9629c3fa70395b2c8 Mon Sep 17 00:00:00 2001 From: cheese8 Date: Sat, 16 Jul 2022 00:07:07 +0800 Subject: [PATCH 02/11] align to checkstyle --- .../registry/PolarisAutoServiceRegistration.java | 1 + .../polaris/registry/PolarisServiceRegistry.java | 7 ++++--- .../graceful/AbstractGracefulServiceRegistration.java | 10 +++++----- .../GracefulServiceRegistrationAutoConfiguration.java | 6 +++--- .../GracefulServiceRegistrationProperties.java | 2 +- .../service/caller/DiscoveryCallerService.java | 2 +- ...MyListenery.java => SpringEventOrderListener.java} | 11 +---------- 7 files changed, 16 insertions(+), 23 deletions(-) rename spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/{MyListenery.java => SpringEventOrderListener.java} (77%) diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java index a04a10bcb..8c3bdb4ad 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java @@ -21,6 +21,7 @@ import com.tencent.cloud.polaris.registry.graceful.AbstractGracefulServiceRegist import com.tencent.cloud.polaris.registry.graceful.GracefulServiceRegistrationProperties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + import org.springframework.cloud.client.serviceregistry.Registration; import org.springframework.cloud.client.serviceregistry.ServiceRegistry; import org.springframework.util.StringUtils; diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java index a02f0b190..b9da05fca 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java @@ -18,6 +18,9 @@ package com.tencent.cloud.polaris.registry; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; + import com.tencent.cloud.common.metadata.StaticMetadataManager; import com.tencent.cloud.polaris.PolarisDiscoveryProperties; import com.tencent.cloud.polaris.discovery.PolarisDiscoveryHandler; @@ -33,13 +36,11 @@ import com.tencent.polaris.client.util.NamedThreadFactory; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + import org.springframework.beans.BeanUtils; import org.springframework.cloud.client.serviceregistry.Registration; import org.springframework.cloud.client.serviceregistry.ServiceRegistry; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; - import static java.util.concurrent.TimeUnit.MILLISECONDS; import static org.springframework.util.ReflectionUtils.rethrowRuntimeException; diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java index 22541b02c..7cbb62aa7 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java @@ -1,5 +1,10 @@ package com.tencent.cloud.polaris.registry.graceful; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; + +import javax.annotation.PreDestroy; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.BeansException; @@ -15,11 +20,6 @@ import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationListener; import org.springframework.core.env.Environment; -import javax.annotation.PreDestroy; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicInteger; - - /** * Lifecycle methods that may be useful and common to {@link ServiceRegistry} * implementations. diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationAutoConfiguration.java index 7a1dfcc75..c1d588691 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationAutoConfiguration.java @@ -1,12 +1,12 @@ package com.tencent.cloud.polaris.registry.graceful; +import javax.annotation.PostConstruct; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; -import javax.annotation.PostConstruct; - /** * @author Spencer Gibb */ @@ -29,4 +29,4 @@ public class GracefulServiceRegistrationAutoConfiguration { } } -} \ No newline at end of file +} diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationProperties.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationProperties.java index 07258130a..dd72864b8 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationProperties.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationProperties.java @@ -45,4 +45,4 @@ public class GracefulServiceRegistrationProperties { this.failFast = failFast; } -} \ No newline at end of file +} diff --git a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/DiscoveryCallerService.java b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/DiscoveryCallerService.java index dd7498e28..baa3e2587 100644 --- a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/DiscoveryCallerService.java +++ b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/DiscoveryCallerService.java @@ -35,7 +35,7 @@ public class DiscoveryCallerService { public static void main(String[] args) { SpringApplication app = new SpringApplication(DiscoveryCallerService.class); - app.addListeners(new MyListenery()); + app.addListeners(new SpringEventOrderListener()); app.run(args); } diff --git a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/MyListenery.java b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/SpringEventOrderListener.java similarity index 77% rename from spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/MyListenery.java rename to spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/SpringEventOrderListener.java index 1859266bd..fc10f5489 100644 --- a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/MyListenery.java +++ b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/SpringEventOrderListener.java @@ -6,19 +6,10 @@ import org.springframework.boot.web.servlet.context.ServletWebServerInitializedE import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationListener; -public class MyListenery implements ApplicationListener { +public class SpringEventOrderListener implements ApplicationListener { @Override public void onApplicationEvent(ApplicationEvent event) { -// ApplicationStartingEvent//启动开始的时候执行的事件 -// ApplicationEnvironmentPreparedEvent//上下文创建之前运行的事件 -// ApplicationContextInitializedEvent// -// ApplicationPreparedEvent//上下文创建完成,注入的bean还没加载完成 -// ContextRefreshedEvent//上下文刷新 -// ServletWebServerInitializedEvent//web服务器初始化 -// ApplicationStartedEvent// -// ApplicationReadyEvent//启动成功 -// ApplicationFailedEvent//在启动Spring发生异常时触发 switch (event.getClass().getSimpleName()){ case "ApplicationStartingEvent": System.out.println("事件ApplicationStartingEvent"); From dacd498a325e2b47e98c4c5d2b452680acae7669 Mon Sep 17 00:00:00 2001 From: cheese8 Date: Sat, 16 Jul 2022 00:13:24 +0800 Subject: [PATCH 03/11] align to checkstyle --- .../registry/PolarisServiceRegistryAutoConfiguration.java | 1 + .../graceful/AbstractGracefulServiceRegistration.java | 7 ++++--- .../registry/PolarisGracefulServiceRegistrationTest.java | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java index ceb14e19e..5f60867f7 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java @@ -27,6 +27,7 @@ import com.tencent.cloud.polaris.registry.graceful.GracefulServiceRegistrationAu import com.tencent.cloud.polaris.registry.graceful.GracefulServiceRegistrationConfiguration; import com.tencent.cloud.polaris.registry.graceful.GracefulServiceRegistrationProperties; import com.tencent.polaris.client.api.SDKContext; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java index 7cbb62aa7..604ed124f 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java @@ -7,6 +7,7 @@ import javax.annotation.PreDestroy; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.springframework.beans.BeansException; import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.boot.web.context.ConfigurableWebServerApplicationContext; @@ -57,8 +58,8 @@ public abstract class AbstractGracefulServiceRegistration serviceRegistry, - GracefulServiceRegistrationProperties properties) { + protected AbstractGracefulServiceRegistration(ServiceRegistry serviceRegistry, + GracefulServiceRegistrationProperties properties) { this.serviceRegistry = serviceRegistry; this.properties = properties; } @@ -261,4 +262,4 @@ public abstract class AbstractGracefulServiceRegistration Date: Sat, 16 Jul 2022 00:19:04 +0800 Subject: [PATCH 04/11] align to checkstyle --- .../registry/graceful/AbstractGracefulServiceRegistration.java | 2 +- .../graceful/GracefulServiceRegistrationAutoConfiguration.java | 2 +- .../graceful/GracefulServiceRegistrationConfiguration.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java index 604ed124f..c2acea6e9 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java @@ -58,7 +58,7 @@ public abstract class AbstractGracefulServiceRegistration serviceRegistry, + protected AbstractGracefulServiceRegistration(ServiceRegistry serviceRegistry, GracefulServiceRegistrationProperties properties) { this.serviceRegistry = serviceRegistry; this.properties = properties; diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationAutoConfiguration.java index c1d588691..3160b3634 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationAutoConfiguration.java @@ -12,7 +12,7 @@ import org.springframework.context.annotation.Import; */ @Configuration(proxyBeanMethods = false) @Import(GracefulServiceRegistrationConfiguration.class) -@ConditionalOnProperty(value = "spring.cloud.service-registry.graceful-registration.enabled") +@ConditionalOnProperty(value = "spring.cloud.service-registry.graceful-registration.enabled", matchIfMissing = true) public class GracefulServiceRegistrationAutoConfiguration { @Autowired(required = false) diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationConfiguration.java index 8f502754f..f37d6a95f 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationConfiguration.java @@ -6,7 +6,7 @@ import org.springframework.context.annotation.Configuration; @Configuration(proxyBeanMethods = false) @EnableConfigurationProperties(GracefulServiceRegistrationProperties.class) -@ConditionalOnProperty(value = "spring.cloud.service-registry.graceful-registration.enabled") +@ConditionalOnProperty(value = "spring.cloud.service-registry.graceful-registration.enabled", matchIfMissing = true) public class GracefulServiceRegistrationConfiguration { } From cfa969088c04fa125e4a537a96059cde3a5aa75a Mon Sep 17 00:00:00 2001 From: cheese8 Date: Sat, 16 Jul 2022 00:30:26 +0800 Subject: [PATCH 05/11] Update PolarisServiceRegistryTest.java --- .../cloud/polaris/registry/PolarisServiceRegistryTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryTest.java index 8a6797b7b..2b3d8d9b1 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryTest.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryTest.java @@ -57,6 +57,7 @@ public class PolarisServiceRegistryTest { PolarisDiscoveryAutoConfiguration.class)) .withPropertyValues("spring.application.name=" + SERVICE_PROVIDER) .withPropertyValues("server.port=" + PORT) + .withPropertyValues("spring.cloud.service-registry.graceful-registration.enabled=true") .withPropertyValues("spring.cloud.polaris.address=grpc://127.0.0.1:10081") .withPropertyValues("spring.cloud.polaris.discovery.namespace=" + NAMESPACE_TEST) .withPropertyValues("spring.cloud.polaris.discovery.token=xxxxxx"); From 75c8875b2a9113933fa79fa745885f4d11807a45 Mon Sep 17 00:00:00 2001 From: cheese8 Date: Sat, 16 Jul 2022 00:42:37 +0800 Subject: [PATCH 06/11] Update SpringEventOrderListener.java --- .../caller/SpringEventOrderListener.java | 82 +++++++++---------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/SpringEventOrderListener.java b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/SpringEventOrderListener.java index fc10f5489..d59412424 100644 --- a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/SpringEventOrderListener.java +++ b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/SpringEventOrderListener.java @@ -7,44 +7,44 @@ import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationListener; public class SpringEventOrderListener implements ApplicationListener { - - @Override - public void onApplicationEvent(ApplicationEvent event) { - switch (event.getClass().getSimpleName()){ - case "ApplicationStartingEvent": - System.out.println("事件ApplicationStartingEvent"); - break; - case "ApplicationEnvironmentPreparedEvent": - System.out.println("事件ApplicationEnvironmentPreparedEvent"); - break; - case "ApplicationContextInitializedEvent": - System.out.println("事件ApplicationContextInitializedEvent"); - break; - case "ApplicationPreparedEvent": - System.out.println("事件ApplicationPreparedEvent"); - break; - case "ContextRefreshedEvent": - System.out.println("事件ContextRefreshedEvent"); - break; - case "ApplicationStartedEvent": - System.out.println("事件ApplicationStartedEvent"); - break; - case "ServletWebServerInitializedEvent": - if( event instanceof WebServerInitializedEvent){ - System.out.println("事件WebServerInitializedEvent"); - } - if( event instanceof ServletWebServerInitializedEvent){ - System.out.println("事件ServletWebServerInitializedEvent"); - } - if( event instanceof ReactiveWebServerInitializedEvent){ - System.out.println("事件ReactiveWebServerInitializedEvent"); - } - break; - case "ApplicationReadyEvent": - System.out.println("事件ApplicationReadyEvent"); - break; - case "ApplicationFailedEvent": - break; - } - } -} \ No newline at end of file + + @Override + public void onApplicationEvent(ApplicationEvent event) { + switch (event.getClass().getSimpleName()){ + case "ApplicationStartingEvent": + System.out.println("事件ApplicationStartingEvent"); + break; + case "ApplicationEnvironmentPreparedEvent": + System.out.println("事件ApplicationEnvironmentPreparedEvent"); + break; + case "ApplicationContextInitializedEvent": + System.out.println("事件ApplicationContextInitializedEvent"); + break; + case "ApplicationPreparedEvent": + System.out.println("事件ApplicationPreparedEvent"); + break; + case "ContextRefreshedEvent": + System.out.println("事件ContextRefreshedEvent"); + break; + case "ApplicationStartedEvent": + System.out.println("事件ApplicationStartedEvent"); + break; + case "ServletWebServerInitializedEvent": + if( event instanceof WebServerInitializedEvent){ + System.out.println("事件WebServerInitializedEvent"); + } + if( event instanceof ServletWebServerInitializedEvent){ + System.out.println("事件ServletWebServerInitializedEvent"); + } + if( event instanceof ReactiveWebServerInitializedEvent){ + System.out.println("事件ReactiveWebServerInitializedEvent"); + } + break; + case "ApplicationReadyEvent": + System.out.println("事件ApplicationReadyEvent"); + break; + case "ApplicationFailedEvent": + break; + } + } +} From 85876ee13ea92c6423e2edc5ba009764de49bc21 Mon Sep 17 00:00:00 2001 From: cheese8 Date: Sat, 16 Jul 2022 00:51:48 +0800 Subject: [PATCH 07/11] Update SpringEventOrderListener.java --- .../service/caller/SpringEventOrderListener.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/SpringEventOrderListener.java b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/SpringEventOrderListener.java index d59412424..1bd0e4dd5 100644 --- a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/SpringEventOrderListener.java +++ b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/SpringEventOrderListener.java @@ -10,7 +10,7 @@ public class SpringEventOrderListener implements ApplicationListener { @Override public void onApplicationEvent(ApplicationEvent event) { - switch (event.getClass().getSimpleName()){ + switch (event.getClass().getSimpleName()) { case "ApplicationStartingEvent": System.out.println("事件ApplicationStartingEvent"); break; @@ -30,13 +30,13 @@ public class SpringEventOrderListener implements ApplicationListener { System.out.println("事件ApplicationStartedEvent"); break; case "ServletWebServerInitializedEvent": - if( event instanceof WebServerInitializedEvent){ + if (event instanceof WebServerInitializedEvent) { System.out.println("事件WebServerInitializedEvent"); } - if( event instanceof ServletWebServerInitializedEvent){ + if (event instanceof ServletWebServerInitializedEvent) { System.out.println("事件ServletWebServerInitializedEvent"); } - if( event instanceof ReactiveWebServerInitializedEvent){ + if (event instanceof ReactiveWebServerInitializedEvent) { System.out.println("事件ReactiveWebServerInitializedEvent"); } break; From 65e2fdbb0beb1377ad038e2db15dd7b2798106b4 Mon Sep 17 00:00:00 2001 From: cheese8 Date: Sun, 17 Jul 2022 17:10:18 +0800 Subject: [PATCH 08/11] refactor for pr --- CHANGELOG.md | 1 + .../PolarisAutoServiceRegistration.java | 2 +- .../registry/PolarisServiceRegistry.java | 3 +-- ...larisServiceRegistryAutoConfiguration.java | 8 +++---- .../AbstractGracefulServiceRegistration.java | 2 +- ...lServiceRegistrationAutoConfiguration.java | 2 +- ...olarisGracefulServiceRegistrationTest.java | 2 +- .../registry/PolarisServiceRegistryTest.java | 2 +- .../caller/DiscoveryCallerService.java | 2 +- .../caller/SpringEventOrderListener.java | 24 +++++++++++-------- 10 files changed, 26 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e02220c7a..24da631e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,3 +3,4 @@ - [Bugfix: optimize ratelimit actuator](https://github.com/Tencent/spring-cloud-tencent/pull/413) - [Feature: add rate limit filter debug log](https://github.com/Tencent/spring-cloud-tencent/pull/417) +- [Feature: graceful service registration after ApplicationReadyEventg](https://github.com/Tencent/spring-cloud-tencent/pull/441) diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java index 8c3bdb4ad..3e4f7bab8 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisAutoServiceRegistration.java @@ -29,7 +29,7 @@ import org.springframework.util.StringUtils; /** * Auto service registration of Polaris. * - * @author Haotian Zhang, Andrew Shan, Jie Cheng + * @author Haotian Zhang, Andrew Shan, Jie Cheng, cheese8 */ public class PolarisAutoServiceRegistration extends AbstractGracefulServiceRegistration { diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java index b9da05fca..a58d242e7 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java @@ -47,7 +47,7 @@ import static org.springframework.util.ReflectionUtils.rethrowRuntimeException; /** * Service registry of Polaris. * - * @author Haotian Zhang, Andrew Shan, Jie Cheng + * @author Haotian Zhang, Andrew Shan, Jie Cheng, cheese8 */ public class PolarisServiceRegistry implements ServiceRegistry { @@ -84,7 +84,6 @@ public class PolarisServiceRegistry implements ServiceRegistry { return; } // Register instance. - System.out.println("事件注册"); InstanceRegisterRequest instanceRegisterRequest = new InstanceRegisterRequest(); instanceRegisterRequest.setNamespace(polarisDiscoveryProperties.getNamespace()); instanceRegisterRequest.setService(registration.getServiceId()); diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java index 5f60867f7..e33b8a5b4 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java @@ -39,12 +39,12 @@ import org.springframework.context.annotation.Configuration; /** * Autoconfiguration of service registry of Polaris. * - * @author Haotian Zhang, Andrew Shan, Jie Cheng + * @author Haotian Zhang, Andrew Shan, Jie Cheng, cheese8 */ @Configuration(proxyBeanMethods = false) @EnableConfigurationProperties @ConditionalOnPolarisRegisterEnabled -@ConditionalOnProperty(value = "spring.cloud.service-registry.graceful-registration.enabled", matchIfMissing = false) +@ConditionalOnProperty(value = "spring.cloud.service-registry.graceful-registration.enabled", matchIfMissing = true) @AutoConfigureAfter({GracefulServiceRegistrationConfiguration.class, GracefulServiceRegistrationAutoConfiguration.class, PolarisDiscoveryAutoConfiguration.class}) @@ -70,8 +70,8 @@ public class PolarisServiceRegistryAutoConfiguration { @ConditionalOnBean(GracefulServiceRegistrationProperties.class) public PolarisAutoServiceRegistration polarisAutoServiceRegistration( PolarisServiceRegistry registry, - GracefulServiceRegistrationProperties autoServiceRegistrationProperties, + GracefulServiceRegistrationProperties gracefulServiceRegistrationProperties, PolarisRegistration registration) { - return new PolarisAutoServiceRegistration(registry, autoServiceRegistrationProperties, registration); + return new PolarisAutoServiceRegistration(registry, gracefulServiceRegistrationProperties, registration); } } diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java index c2acea6e9..e82af051b 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java @@ -28,7 +28,7 @@ import org.springframework.core.env.Environment; * TODO: Document the lifecycle. * * @param Registration type passed to the {@link ServiceRegistry}. - * @author Spencer Gibb + * @author Spencer Gibb, cheese8 */ public abstract class AbstractGracefulServiceRegistration implements GracefulServiceRegistration, ApplicationContextAware, diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationAutoConfiguration.java index 3160b3634..ba8200424 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/GracefulServiceRegistrationAutoConfiguration.java @@ -8,7 +8,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; /** - * @author Spencer Gibb + * @author Spencer Gibb, cheese8 */ @Configuration(proxyBeanMethods = false) @Import(GracefulServiceRegistrationConfiguration.class) diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisGracefulServiceRegistrationTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisGracefulServiceRegistrationTest.java index 60d0a4298..c157a5442 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisGracefulServiceRegistrationTest.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisGracefulServiceRegistrationTest.java @@ -42,7 +42,7 @@ import static org.mockito.Mockito.doReturn; /** * Test for {@link PolarisAutoServiceRegistration}. * - * @author Haotian Zhang + * @author Haotian Zhang, cheese8 */ @RunWith(MockitoJUnitRunner.class) public class PolarisGracefulServiceRegistrationTest { diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryTest.java index 2b3d8d9b1..b78aeeb00 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryTest.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryTest.java @@ -43,7 +43,7 @@ import static org.mockito.Mockito.when; /** * Test for {@link PolarisServiceRegistry}. * - * @author Haotian Zhang + * @author Haotian Zhang, cheese8 */ public class PolarisServiceRegistryTest { diff --git a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/DiscoveryCallerService.java b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/DiscoveryCallerService.java index baa3e2587..fbdd63874 100644 --- a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/DiscoveryCallerService.java +++ b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/DiscoveryCallerService.java @@ -27,7 +27,7 @@ import org.springframework.web.client.RestTemplate; /** * Discovery caller application. * - * @author Haotian Zhang + * @author Haotian Zhang, cheese8 */ @SpringBootApplication @EnableFeignClients diff --git a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/SpringEventOrderListener.java b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/SpringEventOrderListener.java index 1bd0e4dd5..60c432cbb 100644 --- a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/SpringEventOrderListener.java +++ b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/src/main/java/com/tencent/cloud/polaris/discovery/service/caller/SpringEventOrderListener.java @@ -12,38 +12,42 @@ public class SpringEventOrderListener implements ApplicationListener { public void onApplicationEvent(ApplicationEvent event) { switch (event.getClass().getSimpleName()) { case "ApplicationStartingEvent": - System.out.println("事件ApplicationStartingEvent"); + System.out.println("Event ApplicationStartingEvent occurred"); break; case "ApplicationEnvironmentPreparedEvent": - System.out.println("事件ApplicationEnvironmentPreparedEvent"); + System.out.println("Event ApplicationEnvironmentPreparedEvent occurred"); break; case "ApplicationContextInitializedEvent": - System.out.println("事件ApplicationContextInitializedEvent"); + System.out.println("Event ApplicationContextInitializedEvent occurred"); break; case "ApplicationPreparedEvent": - System.out.println("事件ApplicationPreparedEvent"); + System.out.println("Event ApplicationPreparedEvent occurred"); break; case "ContextRefreshedEvent": - System.out.println("事件ContextRefreshedEvent"); + System.out.println("Event ContextRefreshedEvent occurred"); break; case "ApplicationStartedEvent": - System.out.println("事件ApplicationStartedEvent"); + System.out.println("Event ApplicationStartedEvent occurred"); + break; + case "AvailabilityChangeEvent": + System.out.println("Event AvailabilityChangeEvent occurred"); break; case "ServletWebServerInitializedEvent": if (event instanceof WebServerInitializedEvent) { - System.out.println("事件WebServerInitializedEvent"); + System.out.println("Event WebServerInitializedEvent occurred"); } if (event instanceof ServletWebServerInitializedEvent) { - System.out.println("事件ServletWebServerInitializedEvent"); + System.out.println("Event ServletWebServerInitializedEvent occurred"); } if (event instanceof ReactiveWebServerInitializedEvent) { - System.out.println("事件ReactiveWebServerInitializedEvent"); + System.out.println("Event ReactiveWebServerInitializedEvent occurred"); } break; case "ApplicationReadyEvent": - System.out.println("事件ApplicationReadyEvent"); + System.out.println("Event ApplicationReadyEvent occurred"); break; case "ApplicationFailedEvent": + System.out.println("Event ApplicationFailedEvent occurred"); break; } } From 1907e537c187f02ddfb31f5967312b8da9e182ba Mon Sep 17 00:00:00 2001 From: cheese8 Date: Sun, 17 Jul 2022 23:10:07 +0800 Subject: [PATCH 09/11] Update AbstractGracefulServiceRegistration.java --- .../registry/graceful/AbstractGracefulServiceRegistration.java | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java index e82af051b..a521a831e 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/graceful/AbstractGracefulServiceRegistration.java @@ -83,6 +83,7 @@ public abstract class AbstractGracefulServiceRegistration Date: Sun, 17 Jul 2022 23:19:58 +0800 Subject: [PATCH 10/11] Update PolarisServiceRegistryAutoConfiguration.java --- .../registry/PolarisServiceRegistryAutoConfiguration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java index e33b8a5b4..4285b1bbc 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java @@ -44,7 +44,7 @@ import org.springframework.context.annotation.Configuration; @Configuration(proxyBeanMethods = false) @EnableConfigurationProperties @ConditionalOnPolarisRegisterEnabled -@ConditionalOnProperty(value = "spring.cloud.service-registry.graceful-registration.enabled", matchIfMissing = true) +@ConditionalOnProperty(value = "spring.cloud.service-registry.graceful-registration.enabled") @AutoConfigureAfter({GracefulServiceRegistrationConfiguration.class, GracefulServiceRegistrationAutoConfiguration.class, PolarisDiscoveryAutoConfiguration.class}) From 3afa88c40dd177220c9c34fa2b1502e7ea92a8ac Mon Sep 17 00:00:00 2001 From: cheese8 Date: Sun, 17 Jul 2022 23:24:21 +0800 Subject: [PATCH 11/11] Update PolarisServiceRegistryAutoConfiguration.java --- .../registry/PolarisServiceRegistryAutoConfiguration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java index 4285b1bbc..8c295aa2b 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistryAutoConfiguration.java @@ -44,7 +44,7 @@ import org.springframework.context.annotation.Configuration; @Configuration(proxyBeanMethods = false) @EnableConfigurationProperties @ConditionalOnPolarisRegisterEnabled -@ConditionalOnProperty(value = "spring.cloud.service-registry.graceful-registration.enabled") +@ConditionalOnProperty(value = "spring.cloud.service-registry.graceful-registration.enabled", matchIfMissing = false) @AutoConfigureAfter({GracefulServiceRegistrationConfiguration.class, GracefulServiceRegistrationAutoConfiguration.class, PolarisDiscoveryAutoConfiguration.class})