instances.id 是 Spring Boot 应用程序实例的唯一标识符。它由 Spring Boot Admin Server 在应用程序注册时生成,并在应用程序实例的生命周期中保持不变。

Spring Boot Admin Server 生成 instances.id 的代码位于 spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/services/InstanceRegistry.java 文件中的 register 方法中。具体代码如下:

Instance.Builder builder = Instance.create()
        .withId(generateInstanceId())
        .withRegistration(registration)
        .withHealth(health);

其中,generateInstanceId() 方法用于生成 instances.id,具体代码如下:

private String generateInstanceId() {
    String id = UUID.randomUUID().toString();
    if (instanceRepository.getInstance(id) == null) {
        return id;
    }
    return generateInstanceId();
}

该方法使用 UUID 生成一个唯一的字符串作为实例 ID,并检查是否存在相同 ID 的实例。如果存在,则递归调用该方法以生成新的唯一 ID,直到找到一个未使用的 ID 为止。

因此,Spring Boot Admin Server 生成的 instances.id 是根据 UUID 生成的,确保在应用程序实例的生命周期中唯一。

Spring Boot Admin /applications 接口 instances.id 属性详解

原文地址: https://www.cveoy.top/t/topic/l3mE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录