Discover and register your Spring Boot applications
Note
The Basic, Standard, and Enterprise plans will be deprecated starting from mid-March, 2025, with a 3 year retirement period. We recommend transitioning to Azure Container Apps. For more information, see the Azure Spring Apps retirement announcement.
The Standard consumption and dedicated plan will be deprecated starting September 30, 2024, with a complete shutdown after six months. We recommend transitioning to Azure Container Apps. For more information, see Migrate Azure Spring Apps Standard consumption and dedicated plan to Azure Container Apps.
This article applies to: ✔️ Standard consumption and dedicated (Preview) ✔️ Basic/Standard ❌ Enterprise
This article shows you how to register your application using Spring Cloud Service Registry.
Service registration and discovery are key requirements for maintaining a list of live app instances to call, and routing and load balancing inbound requests. Configuring each client manually takes time and introduces the possibility of human error. Azure Spring Apps provides two options for you to solve this problem:
Note
To use service registry in the Standard consumption and dedicated plan, you must enable it first. For more information, see Enable and disable Eureka Server in Azure Spring Apps.
Use Kubernetes Service Discovery approach to invoke calls among your apps.
Azure Spring Apps creates a corresponding Kubernetes service for every app running in it using the app name as the Kubernetes service name. You can invoke calls from one app to another app by using the app name in an HTTP/HTTPS request such as
http(s)://{app name}/path
. This approach is also suitable for the Enterprise plan. For more information, see the Kubernetes registry code sample.Note
This approach isn't suitable for Standard consumption and dedicated (Preview).
Use Managed Spring Cloud Service Registry (OSS) in Azure Spring Apps.
After configuration, a Service Registry server will control service registration and discovery for your applications. The Service Registry server maintains a registry of live app instances, enables client-side load-balancing, and decouples service providers from clients without relying on DNS.
For information about how to set up service registration for a Steeltoe app, see Prepare a Java Spring application for deployment in Azure Spring Apps.
Register your application using Spring Cloud Service Registry
Before your application can manage service registration and discovery using Spring Cloud Service Registry, you must include the following dependency for spring-cloud-starter-netflix-eureka-client
in your pom.xml file:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
Update the top level class
Finally, add an annotation to the top level class of your application, as shown in the following example:
package foo.bar;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@SpringBootApplication
@EnableEurekaClient
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
The Spring Cloud Service Registry server endpoint is injected as an environment variable in your application. Applications can register themselves with the Service Registry server and discover other dependent applications.
Note
It can take a few minutes for the changes to propagate from the server to all applications.
Next steps
In this article, you learned how to register your application using Spring Cloud Service Registry. To learn how to access the Spring Cloud Service Registry using Microsoft Entra role-based access control (RBAC), see Access Config Server and Service Registry.