Программно удалить зарегистрированный экземпляр с сервера Eureka

Есть ли способ удалить зарегистрированный экземпляр с сервера Eureka без использования операций REST? Какая структура данных содержит все приложения?

(Понятно, что я хочу убрать их, пишущих код в Eureka Server).


person Nano    schedule 25.01.2017    source источник


Ответы (1)


Нужная вам функциональность доступна через InstanceRegistry, который сам является просто расширением классов Netflix Eureka (PeerAwareInstanceRegistryImpl и AbstractInstanceRegistry).

В частности, метод AbstractInstanceRegistry#cancel(String,String,boolean) должен удалять приложения из реестра.

В Javadoc для этого метода указано:

/**
 * Cancels the registration of an instance.
 *
 * <p>
 * This is normally invoked by a client when it shuts down informing the
 * server to remove the instance from traffic.
 * </p>
 *
 * @param appName the application name of the application.
 * @param id the unique identifier of the instance.
 * @param isReplication true if this is a replication event from other nodes, false
 *                      otherwise.
 * @return true if the instance was removed from the {@link AbstractInstanceRegistry} successfully, false otherwise.
 */

Вот как вы можете добиться этого с самого сервера Eureka.

person nicholas.hauschild    schedule 25.01.2017