发现和注册 Spring Boot 应用程序

注意

Azure Spring Apps 是 Azure Spring Cloud 服务的新名称。 虽然该服务有新名称,但一些地方仍会使用旧名称,我们仍在更新屏幕截图、视频和图形等资产。

本文介绍如何使用 Spring Cloud 服务注册表注册应用程序。

服务注册和发现是维护要调用实时应用实例的列表以及路由和负载均衡入站请求的关键要求。 手动配置每个客户端会耗费时间,并引入人为错误的可能性。 Azure Spring Apps 提供了两个解决此问题的选项:

  • 使用 Kubernetes 服务发现方法在应用之间调用调用。

    Azure Spring Apps 使用应用名称作为 Kubernetes 服务名称,为其中运行的每个应用创建相应的 Kubernetes 服务。 可以在 HTTP/HTTPS 请求中使用应用名称(例如 http(s)://{app name}/path)从一个应用调用另一个应用。

    注意

    此方法不适用于标准使用版和专用版(预览版)。

  • 在 Azure Spring Apps 中使用托管 Spring Cloud 服务注册表 (OSS)。

    配置后,服务注册表服务器将为应用程序控制服务注册和发现。 服务注册表服务器维护实时应用实例的注册表、启用客户端负载平衡,并从客户端分离服务提供程序,而无需依赖 DNS。

使用 Spring Cloud 服务注册表注册应用程序

在应用程序可以使用 Spring Cloud 服务注册表管理服务注册和发现之前,必须在 pom.xml 文件中包含 spring-cloud-starter-netflix-eureka-client 的以下依赖项:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

更新顶级类

最后,将注释添加到应用程序的顶级类,如以下示例中所示:

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);
    }
}

Spring Cloud 服务注册表服务器终结点会作为环境变量注入到应用程序中。 然后,应用程序可自行注册到服务注册表服务器,并发现其他依赖性应用程序。

注意

将更改从服务器传播到所有应用程序可能需要几分钟时间。

后续步骤

本文介绍了如何使用 Spring Cloud 服务注册表注册应用程序。 若要了解如何使用 Microsoft Entra 基于角色的访问控制 (RBAC) 访问 Spring Cloud 服务注册表,请参阅访问 Config Server 和服务注册表