Имя экземпляра отображается как "неизвестно" на панели инструментов Eureka вместо имени службы

Я работаю на микросервисах с загрузкой Spring и использую eureka в качестве сервера. Я зарегистрировал свой сервис на сервере Eureka, но на Eureka Dashboard имя службы отображается как "Неизвестно" вместо имени службы, которое я настроил в application.yml.

ниже оба сервера конфигурации yml: порт: 8761

весна: приложение: имя: эврика-сервер

eureka: экземпляр: имя хоста: локальный клиент: register-with-eureka: ложный выборочный реестр: ложный URL-адрес службы: зона по умолчанию: http: // $ {eureka.instance.hostname}: $ {server.port} / eureka /


eureka: клиент: serviceUrl: defaultZone: http://localhost:8761/eureka/ экземпляр: имя приложения: сервер отчетов сервер: порт: 0 экземпляр: предпочитаемый_адрес: истина весна: приложение: имя: механизм отчетов


7 ответов

Попробуйте создать файл bootstrap.yml и добавьте это:

spring.application.name = instanceName

В вашем файле Applicaton.yml:

spring:
  application:
    name: yourname
eureka:
  instance:
     instanceId: ${spring.application.name}

где "instanceId" важен для удовлетворения ваших потребностей.

Измените свойство default-zone по умолчанию Zone. Я делюсь с вами тем, что работает для меня.

application.yml

Эврика сервер

   eureka:
     instance:
       hostname: localhost
     client:  # Not a client, don't register with yourself
       registerWithEureka: false
       fetchRegistry: false
     server:
       enable-self-preservation: false

   server:
     port: 8882

Эврика Клиент

   spring:
     application:
       name: customer

   eureka:
    client:
      eureka-connection-idle-timeout-seconds: 60
      serviceUrl:
        defaultZone: http://localhost:8882/eureka/
      healthcheck:
        enabled: true

Попробуйте перезапустить вашу IDE и попытаться сохранить имя приложения строчными буквами.

(spring.application.name=service-service)

Создайте bootstrap.properties и добавьте:

spring.application.name = <instanceName>

затем в application.properties установите:

eureka.instance.hostname=<hostname>
eureka.instance.instance-id=${spring.application.name}:${random.int} // to have a unique instance id

Я тоже столкнулся с той же проблемой. В моем файле application.properties в клиентском приложении Spring пытается подключиться к eureka сервер, у меня была опечатка application.name=servicename

После исправления на spring.application.name, имя экземпляра появилось на eureka приборная доска.

Я столкнулся с аналогичной проблемой: если вы добавляете свойства в файл, убедитесь, что у вас есть необходимые места для добавления правильной конфигурации, ниже приведен мойapp.yamlфайл, и это сработало для меня.

      server:
  port: 8089
spring:
  datasource:
    url: jdbc:mysql://${DB_HOST:localhost}:3306/productdb
    username: root
    password: root
    driverClassName: com.mysql.cj.jdbc.Driver
  jpa:
    database-platform: org.hibernate.dialect.MySQL8Dialect
    hibernate:
      ddl-auto: update
  application:
    name: product-service

eureka:
  instance:
    prefer-ip-address: true
  client:
    fetch-registry: true
    register-with-eureka: true
    service-url:
      defaultZone: http://localhost:8761/eureka/

Это работает вот такspring.application.name=product-service. Поэтому мы предоставляем одну табуляцию или два пробела здесь после «весны» при написании «приложения», затем еще одну табуляцию при написании «имени» и далее имени.

Другие вопросы по тегам