Добавить экземпляр в SimpleDiscoveryClient динамически и программно — Spring Cloud

Мой вопрос касается этого проекта https://github.com/spring-cloud/spring-cloud-commons

Есть ли способ добавить экземпляр в SimpleDiscoveryClient динамически и программно во время выполнения вместо использования свойств приложения, таких как здесь ?

Некоторые идеи :

  • Создайте пользовательскую реализацию SimpleDiscoveryClient.
  • Создайте список статических экземпляров помимо SimpleDiscoveryClient (создайте соответственно весенние маршруты облачных шлюзов) и получите экземпляры из моего статического списка и других из SimpleDiscoveryClient

Спасибо за помощь.


person nassimerrahoui    schedule 18.01.2021    source источник
comment
SimpleDiscoveryClient — одноэлементный компонент. Я не пробовал, но вы, вероятно, могли бы просто подключить его к своему классу и манипулировать им.   -  person spencergibb    schedule 18.01.2021
comment
@spencergibb: Спасибо за помощь. Я автоматически подключил SimpleDiscoveryProperties из SimpleDiscoveryClient, чтобы добавить экземпляр.   -  person nassimerrahoui    schedule 19.01.2021


Ответы (1)


Обходной путь: автоподключение SimpleDiscoveryProperties из SimpleDiscoveryClient для добавления экземпляра. Используйте ApplicationEventPublisher и отправьте RefreshScopeRefreshedEvent, чтобы обновить маршруты Spring Cloud Gateway.

person nassimerrahoui    schedule 19.01.2021
comment
Не нужно нажимать на конечную точку, просто отправьте правильное событие приложения Spring. - person spencergibb; 20.01.2021
comment
@spencergibb Я пытался использовать ApplicationEventPublisher и отправить RefreshScopeRefreshedEvent, похоже, это работает. Большое спасибо за советы! - person nassimerrahoui; 20.01.2021