Консул не отменяет регистрацию экземпляра, который был убит, потому что другой экземпляр запускается на том же порту. Пружинный ботинок

#spring #microservices #spring-cloud #consul

Вопрос:

Когда я запускаю 1 экземпляр приложения, затем убиваю его, а затем перезапускаю, консул показывает мне 2 экземпляра со статусом «ОК». Конфигурация моего приложения:

 instance-id: ${random.long}

cloud:
    consul:
      host: ${CONSUL_HOST:localhost}
      port: ${CONSUL_PORT:8500}
      discovery:
        enabled: true
        fail-fast: true
        instance-id: ${spring.application.name}-${server.port}-${instance-id}
        health-check-path: /actuator/health
        health-check-interval: 20s
        
management:
  endpoints:
    web:
      exposure:
        include: hystrix.stream, info, health, metrics, prometheus, heapdump, threaddump
  endpoint:
    health:
      show-details: always
    metrics:
      enabled: true
  health:
    redis:
      enabled: false
  metrics:
    tags:
      application: dashboard
      instance: ${instance-id}
  server:
    port: ${DASH_SERVICE_ACTUATOR_PORT:9081}
 

Первый запуск:
введите описание изображения здесь

Второй заход: введите описание изображения здесь

Я хочу сохранить случайный идентификатор экземпляра для каждого перезапуска, но я хочу, чтобы консул отменял регистрацию убитых экземпляров. Как я вижу, это происходит потому, что оба экземпляра запрашивают проверку работоспособности для одного и того же порта. Возможно, есть способ проверить идентификатор экземпляра в этой проверке работоспособности.