|
|
|
@ -22,20 +22,26 @@ import com.tencent.cloud.polaris.discovery.PolarisServiceDiscovery;
|
|
|
|
|
|
|
|
|
|
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
|
|
|
|
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
|
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
|
|
|
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
|
|
|
|
import org.springframework.cloud.client.ConditionalOnDiscoveryHealthIndicatorEnabled;
|
|
|
|
|
import org.springframework.cloud.client.ConditionalOnReactiveDiscoveryEnabled;
|
|
|
|
|
import org.springframework.cloud.client.ReactiveCommonsClientAutoConfiguration;
|
|
|
|
|
import org.springframework.cloud.client.discovery.composite.reactive.ReactiveCompositeDiscoveryClientAutoConfiguration;
|
|
|
|
|
import org.springframework.cloud.client.discovery.health.DiscoveryClientHealthIndicatorProperties;
|
|
|
|
|
import org.springframework.cloud.client.discovery.health.reactive.ReactiveDiscoveryClientHealthIndicator;
|
|
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Reactive Discovery Client Configuration for Polaris.
|
|
|
|
|
*
|
|
|
|
|
* @author Haotian Zhang, Andrew Shan, Jie Cheng
|
|
|
|
|
* @author Haotian Zhang, Andrew Shan, Jie Cheng, youta
|
|
|
|
|
*/
|
|
|
|
|
@Configuration(proxyBeanMethods = false)
|
|
|
|
|
@ConditionalOnReactiveDiscoveryEnabled
|
|
|
|
|
@EnableConfigurationProperties(DiscoveryClientHealthIndicatorProperties.class)
|
|
|
|
|
@AutoConfigureAfter({PolarisDiscoveryAutoConfiguration.class, ReactiveCompositeDiscoveryClientAutoConfiguration.class})
|
|
|
|
|
@AutoConfigureBefore({ReactiveCommonsClientAutoConfiguration.class})
|
|
|
|
|
public class PolarisReactiveDiscoveryClientConfiguration {
|
|
|
|
@ -46,4 +52,12 @@ public class PolarisReactiveDiscoveryClientConfiguration {
|
|
|
|
|
PolarisServiceDiscovery polarisServiceDiscovery) {
|
|
|
|
|
return new PolarisReactiveDiscoveryClient(polarisServiceDiscovery);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Bean
|
|
|
|
|
@ConditionalOnClass(name = "org.springframework.boot.actuate.health.ReactiveHealthIndicator")
|
|
|
|
|
@ConditionalOnDiscoveryHealthIndicatorEnabled
|
|
|
|
|
public ReactiveDiscoveryClientHealthIndicator polarisReactiveDiscoveryClientHealthIndicator(
|
|
|
|
|
PolarisReactiveDiscoveryClient client, DiscoveryClientHealthIndicatorProperties properties) {
|
|
|
|
|
return new ReactiveDiscoveryClientHealthIndicator(client, properties);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|