Class DynamicConsulServiceDiscovery
java.lang.Object
ai.pipestream.dynamic.grpc.client.discovery.DynamicConsulServiceDiscovery
- All Implemented Interfaces:
ServiceDiscovery
@ApplicationScoped
@Typed(DynamicConsulServiceDiscovery.class)
public class DynamicConsulServiceDiscovery
extends Object
implements ServiceDiscovery
Dynamic Consul-based service discovery that uses Stork's LoadBalancer
for intelligent instance selection without requiring pre-configuration.
This class is typed as DynamicConsulServiceDiscovery only (not ServiceDiscovery) to avoid
ambiguous dependencies. It's made available as ServiceDiscovery through producers.
Creates its own ConsulClient from configuration for service discovery.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classCustom exception for service discovery failures. -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new DynamicConsulServiceDiscovery. -
Method Summary
Modifier and TypeMethodDescriptionio.smallrye.mutiny.Uni<List<io.smallrye.stork.api.ServiceInstance>> discoverAllInstances(String serviceName) Discover all healthy instances of a service.io.smallrye.mutiny.Uni<io.smallrye.stork.api.ServiceInstance> discoverService(String serviceName) Discover a single healthy instance of a service.
-
Constructor Details
-
DynamicConsulServiceDiscovery
public DynamicConsulServiceDiscovery()Creates a new DynamicConsulServiceDiscovery. The Consul client is initialized in the @PostConstruct lifecycle.
-
-
Method Details
-
discoverService
public io.smallrye.mutiny.Uni<io.smallrye.stork.api.ServiceInstance> discoverService(String serviceName) Description copied from interface:ServiceDiscoveryDiscover a single healthy instance of a service.- Specified by:
discoverServicein interfaceServiceDiscovery- Parameters:
serviceName- The name of the service to discover- Returns:
- A Uni containing a selected service instance
-
discoverAllInstances
public io.smallrye.mutiny.Uni<List<io.smallrye.stork.api.ServiceInstance>> discoverAllInstances(String serviceName) Description copied from interface:ServiceDiscoveryDiscover all healthy instances of a service.- Specified by:
discoverAllInstancesin interfaceServiceDiscovery- Parameters:
serviceName- The name of the service to discover- Returns:
- A Uni containing all available service instances
-