-
Notifications
You must be signed in to change notification settings - Fork 31
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
Example Usage:
`// 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.9-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.
Example Usage:
`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.
Example Usage:
`List instances = unionDiscoveryClient.getInstances("test");
`
public List<String> getServices()Returns a deduplicated list of service names from all registered DiscoveryClient
instances, preserving insertion order.
Example Usage:
`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.
Example Usage:
`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.
Example Usage:
`int order = unionDiscoveryClient.getOrder(); `
public void afterSingletonsInstantiated()Callback invoked after all singleton beans have been instantiated. Eagerly initializes
the internal list of DiscoveryClient instances.
Example Usage:
`// 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.
Example Usage:
`// Automatically called by the Spring container on shutdown unionDiscoveryClient.destroy(); `
public void setApplicationContext(ApplicationContext applicationContext)Sets the ApplicationContext used to look up DiscoveryClient beans.
Example Usage:
`// 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
- ConditionalOnAutoServiceRegistrationEnabled
- ConditionalOnFeaturesEnabled
- ConditionalOnLoadBalancerEnabled
- ConditionalOnMultipleRegistrationEnabled
- ConditionalOnUtilEnabled
- DefaultRegistration
- DiscoveryClientAutoConfiguration
- DiscoveryClientConstants
- DiscoveryUtils
- EventPublishingRegistrationAspect
- FaultTolerancePropertyConstants
- InMemoryServiceRegistry
- InstanceConstants
- LoadBalancerUtils
- MultipleAutoServiceRegistration
- MultipleRegistration
- MultipleServiceRegistry
- ReactiveDiscoveryClientAdapter
- ReactiveDiscoveryClientAutoConfiguration
- RegistrationCustomizer
- RegistrationDeregisteredEvent
- RegistrationEvent
- RegistrationMetaData
- RegistrationPreDeregisteredEvent
- RegistrationPreRegisteredEvent
- RegistrationRegisteredEvent
- ServiceDeregistrationEndpoint
- ServiceInstanceUtils
- ServiceInstancesChangedEvent
- ServiceRegistrationEndpoint
- ServiceRegistrationEndpointAutoConfiguration
- ServiceRegistryAutoConfiguration
- SimpleAutoServiceRegistration
- SimpleAutoServiceRegistrationAutoConfiguration
- SimpleServiceRegistry
- SpecificationAutoConfiguration
- SpecificationBeanPostProcessor
- SpecificationCustomizer
- SpringCloudPropertyConstants
- TomcatDynamicConfigurationListener
- TomcatFaultToleranceAutoConfiguration
- UnionDiscoveryClient
- WebFluxServiceRegistryAutoConfiguration
- WebMvcServiceRegistryAutoConfiguration
- WebServiceRegistryAutoConfiguration
- WeightedRoundRobin
spring-cloud-openfeign
- AutoRefreshCapability
- AutoRefreshCapabilityCustomizer
- CompositedRequestInterceptor
- DecoratedContract
- DecoratedDecoder
- DecoratedEncoder
- DecoratedErrorDecoder
- DecoratedFeignComponent
- DecoratedQueryMapEncoder
- DecoratedRetryer
- EnableFeignAutoRefresh
- FeignAutoConfiguration
- FeignClientAutoRefreshAutoConfiguration
- FeignClientConfigurationChangedListener
- FeignComponentRegistry
- NoOpRequestInterceptor
- Refreshable