-
Notifications
You must be signed in to change notification settings - Fork 30
io microsphere spring cloud client discovery UnionDiscoveryClient
Type: Class | Module: microsphere-spring-cloud-commons | Package: io.microsphere.spring.cloud.client.discovery | Since: 1.0.0
The DiscoveryClient implementation for a union of the given DiscoveryClient
`// Register UnionDiscoveryClient as a Spring bean, then retrieve merged service instances
UnionDiscoveryClient unionDiscoveryClient = applicationContext.getBean(UnionDiscoveryClient.class);
List instances = unionDiscoveryClient.getInstances("test");
List services = unionDiscoveryClient.getServices();
`
public final class UnionDiscoveryClient implements DiscoveryClient, ApplicationContextAware, SmartInitializingSingleton, DisposableBeanAuthor: Mercy
-
Introduced in:
1.0.0 -
Current Project Version:
0.2.25-SNAPSHOT
This component is tested and compatible with the following Java versions:
| Java Version | Status |
|---|---|
| Java 17 | ✅ Compatible |
| Java 21 | ✅ Compatible |
| Java 25 | ✅ Compatible |
// Register UnionDiscoveryClient as a Spring bean, then retrieve merged service instances
UnionDiscoveryClient unionDiscoveryClient = applicationContext.getBean(UnionDiscoveryClient.class);
List<ServiceInstance> instances = unionDiscoveryClient.getInstances("test");
List<String> services = unionDiscoveryClient.getServices();String desc = unionDiscoveryClient.description();List<ServiceInstance> instances = unionDiscoveryClient.getInstances("test");List<String> services = unionDiscoveryClient.getServices();UnionDiscoveryClient unionClient = applicationContext.getBean(UnionDiscoveryClient.class);
List<DiscoveryClient> clients = unionClient.getDiscoveryClients();
clients.forEach(c -> System.out.println(c.description()));int order = unionDiscoveryClient.getOrder();// Automatically called by the Spring container after singleton initialization
unionDiscoveryClient.afterSingletonsInstantiated();// Automatically called by the Spring container on shutdown
unionDiscoveryClient.destroy();// Automatically called by the Spring container
unionDiscoveryClient.setApplicationContext(applicationContext);Add the following dependency to your pom.xml:
<dependency>
<groupId>io.github.microsphere-projects</groupId>
<artifactId>microsphere-spring-cloud-commons</artifactId>
<version>${microsphere-spring-cloud.version}</version>
</dependency>Tip: Use the BOM (
microsphere-spring-cloud-dependencies) for consistent version management. See the Getting Started guide.
import io.microsphere.spring.cloud.client.discovery.UnionDiscoveryClient;| Method | Description |
|---|---|
description |
Returns a human-readable description of this DiscoveryClient. |
getInstances |
Returns a merged list of ServiceInstance objects from all registered |
getServices |
Returns a deduplicated list of service names from all registered DiscoveryClient
|
getDiscoveryClients |
Returns the sorted list of underlying DiscoveryClient DiscoveryClients, excluding |
getOrder |
Returns the order value of this client. This client uses HIGHEST_PRECEDENCE
|
afterSingletonsInstantiated |
Callback invoked after all singleton beans have been instantiated. Eagerly initializes |
destroy |
Clears the cached list of DiscoveryClient instances when this bean is destroyed. |
setApplicationContext |
Sets the ApplicationContext used to look up DiscoveryClient beans. |
public String description()Returns a human-readable description of this DiscoveryClient.
`String desc = unionDiscoveryClient.description(); `
public List<ServiceInstance> getInstances(String serviceId)Returns a merged list of ServiceInstance objects from all registered
DiscoveryClient instances for the given service ID.
`List instances = unionDiscoveryClient.getInstances("test");
`
public List<String> getServices()Returns a deduplicated list of service names from all registered DiscoveryClient
instances, preserving insertion order.
`List services = unionDiscoveryClient.getServices(); `
public List<DiscoveryClient> getDiscoveryClients()Returns the sorted list of underlying DiscoveryClient DiscoveryClients, excluding
CompositeDiscoveryClient and this instance itself. The list is lazily initialized
from the ApplicationContext on first access and cached for subsequent calls.
`UnionDiscoveryClient unionClient = applicationContext.getBean(UnionDiscoveryClient.class); List clients = unionClient.getDiscoveryClients(); clients.forEach(c -> System.out.println(c.description())); `
public int getOrder()Returns the order value of this client. This client uses HIGHEST_PRECEDENCE
to ensure it takes priority over other DiscoveryClient implementations.
`int order = unionDiscoveryClient.getOrder(); `
public void afterSingletonsInstantiated()Callback invoked after all singleton beans have been instantiated. Eagerly initializes
the internal list of DiscoveryClient instances.
`// Automatically called by the Spring container after singleton initialization unionDiscoveryClient.afterSingletonsInstantiated(); `
public void destroy()Clears the cached list of DiscoveryClient instances when this bean is destroyed.
`// Automatically called by the Spring container on shutdown unionDiscoveryClient.destroy(); `
public void setApplicationContext(ApplicationContext applicationContext)Sets the ApplicationContext used to look up DiscoveryClient beans.
`// Automatically called by the Spring container unionDiscoveryClient.setApplicationContext(applicationContext); `
CompositeDiscoveryClient
This documentation was auto-generated from the source code of microsphere-spring-cloud.
spring-cloud-commons
- AbstractServiceRegistrationEndpoint
- CommonsPropertyConstants
- ConditionalOnAutoServiceRegistrationAvailable
- ConditionalOnAutoServiceRegistrationEnabled
- ConditionalOnBlockingDiscoveryAvailable
- ConditionalOnFeaturesAvailable
- ConditionalOnFeaturesEnabled
- ConditionalOnLoadBalancerEnabled
- ConditionalOnMultipleRegistrationEnabled
- ConditionalOnReactiveDiscoveryAvailable
- ConditionalOnUtilEnabled
- ConfigurationPropertyHasFeaturesAutoConfiguration
- DefaultRegistration
- DiscoveryClientAutoConfiguration
- DiscoveryClientConstants
- DiscoveryUtils
- EventPublishingRegistrationAspect
- FaultTolerancePropertyConstants
- FeaturesConstants
- FeaturesProperties
- FeaturesUtils
- InMemoryServiceRegistry
- InstanceConstants
- LoadBalancerUtils
- MultipleAutoServiceRegistration
- MultipleRegistration
- MultipleServiceRegistry
- NamedFeatureComparator
- ReactiveDiscoveryClientAdapter
- ReactiveDiscoveryClientAutoConfiguration
- RegistrationCustomizer
- RegistrationDeregisteredEvent
- RegistrationEvent
- RegistrationMetaData
- RegistrationPreDeregisteredEvent
- RegistrationPreRegisteredEvent
- RegistrationRegisteredEvent
- ServiceDeregistrationEndpoint
- ServiceInstanceUtils
- ServiceInstancesChangedEvent
- ServiceRegistrationEndpoint
- ServiceRegistrationEndpointAutoConfiguration
- ServiceRegistryAutoConfiguration
- ServiceRegistryConstants
- SimpleAutoServiceRegistration
- SimpleAutoServiceRegistrationAutoConfiguration
- SimpleServiceRegistry
- SpecificationAutoConfiguration
- SpecificationBeanPostProcessor
- SpecificationCustomizer
- SpringCloudPropertyConstants
- TomcatDynamicConfigurationListener
- TomcatFaultToleranceAutoConfiguration
- UnionDiscoveryClient
- WebFluxServiceRegistryAutoConfiguration
- WebMvcServiceRegistryAutoConfiguration
- WebServiceRegistryAutoConfiguration
- WeightedRoundRobin
spring-cloud-openfeign
- AutoRefreshCapability
- AutoRefreshCapabilityCustomizer
- CompositedRequestInterceptor
- ConditionalOnOpenFeignAvailable
- ConditionalOnOpenFeignEnabled
- DecoratedContract
- DecoratedDecoder
- DecoratedEncoder
- DecoratedErrorDecoder
- DecoratedFeignComponent
- DecoratedQueryMapEncoder
- DecoratedRetryer
- EnableFeignAutoRefresh
- FeignAutoConfiguration
- FeignClientAutoRefreshAutoConfiguration
- FeignClientConfigurationChangedListener
- FeignComponentRegistry
- FeignConstants
- NoOpRequestInterceptor
- Refreshable