Skip to content

Eureka Service Discovery#

Eureka is a RESTful service that is primarily used in the AWS cloud for the purpose of discovery, load balancing, and failover of middle-tier servers.

This page explains how Stork can use Eureka to handle the service discovery and service registration.

Dependency#

First, you need to add the Stork Eureka Service Discovery provider:

<dependency>
    <groupId>io.smallrye.stork</groupId>
    <artifactId>stork-service-discovery-eureka</artifactId>
    <version>1.1.2</version>
</dependency>

Service discovery configuration#

For each application instance expected to be registered in Eureka, configure the lookup:

stork.my-service.service-discovery.type=eureka
stork.my-service.service-discovery.eureka-host=localhost
stork.my-service.service-discovery.eureka-port=8761
quarkus.stork.my-service.service-discovery.type=eureka
quarkus.stork.my-service.service-discovery.eureka-host=localhost
quarkus.stork.my-service.service-discovery.eureka-port=8761

Stork looks for the service with the given name (my-service in the previous example).

Supported attributes are the following:

The application attribute is optional. It uses the Stork service name (my-service in the previous configuration) if not set.

The instance attribute allows selecting a specific instance. Using this attribute prevents load-balancing as you will always select a single instance.

The secure attribute indicates if you want the secure virtual address of the application instance. If set to true, unsecured instances are filtered out from the available instances.

Service registration#

Stork also provides the ability to register services using Eureka as backend.

Service registration configuration#

For each service that should register the service instances in Eureka, configure the service discovery type:

stork.my-service.service-registrar.type=eureka
stork.my-service.service-registrar.eureka-host=localhost
stork.my-service.service-registrar.eureka-port=8761
quarkus.stork.my-service.service-registrar.type=eureka
quarkus.stork.my-service.service-registrar.eureka-host=localhost
quarkus.stork.my-service.service-registrar.eureka-port=8761

Consul service registrar is configured with the following parameters: