Что такое instanceid в весенней эврике?
Я прочитал, что идентификатор экземпляра клиентов Eureka должен быть уникальным, и когда мы хотим запустить несколько экземпляров одного и того же клиента Eureka, мы добавляем это свойство:
eureka.instance.instance-id==${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${random.value}}
Какое значение имеет идентификатор экземпляра и как имеет значение приведенная выше строка?
2 ответа
Он используется для уникальной идентификации одного экземпляра нескольких служб. Например, если вы развернули два экземпляра одного и того же приложения весенней загрузки, идентификатор экземпляра используется для различения между ними.
Некоторые дополнительные варианты использования для PCF и AWS с идентификатором экземпляра можно найти в документации.
https://cloud.spring.io/spring-cloud-netflix/multi/multi__service_discovery_eureka_clients.html
Вышеуказанное свойство просто берет другие свойства, объединяет их. Единственное замечание выше, что если spring.application_instance_id
не найден в окружающей среде, он будет использовать random.value
вместо. Вы можете переопределить, как хотите, но оно должно быть уникальным.
Клиент Eureka имеет идентификатор приложения и идентификатор экземпляра.Идентификатор приложения - это имя приложения, а идентификатор экземпляра - уникальный идентификатор, связанный с экземпляром клиента.
Это помогает Eureka Server различать разные клиентские экземпляры одного и того же приложения. В вашем примере строка, показанная ниже, устанавливает уникальный идентификатор экземпляра для вашего приложения, имеющего формат: <client host name>:<client app name>:<some random number>
eureka.instance.instance-id==${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${random.value}}
В моем примере, показанном ниже, идентификатор экземпляра имеет формат - <host name>:<app id>:<port>
, Операция Eureka REST, показанная ниже, изменит статус клиента eureka с идентификатором приложения AUTHOR
и идентификатор экземпляра 10.16.6.76:author:8766
в OUT_OF_SERVICE
,
localhost:8761/eureka/apps/AUTHOR/10.16.6.76:author:8766/status?value=OUT_OF_SERVICE
Если вы заметили, Eureka Server может однозначно идентифицировать клиента, если вы предоставите и идентификатор приложения, и идентификатор экземпляра.