У меня есть несколько микросервисов, зарегистрированных на сервере Eureka (http://localhost:10100)
Я удаляю экземпляр с сервера eureka, используя приведенный ниже REST API
Ссылка: https://github.com/Netflix/eureka/wiki/Eureka-REST-operations
1) Удалить экземпляр с сервера eureka (УДАЛИТЬ) (Он удаляет экземпляр, но снова регистрируется ..)
http://localhost:10100/eureka/apps/MICRO-SERVICE-1/localhost:micro-service-1:10501
2) Обновить статус службы на ВНИЗ /OUT_OF_SERVICE
http://localhost:10100/eureka/apps/MICRO-SERVICE-1/localhost:micro-service-1:10501/status?value=DOWN
Таким образом, даже если состояние микро-службы-1 установлено на DOWN / OUT_OF_SERVICE, я могу отправить запрос в микро-службу-1 (http://localhost:10501/MyService/hello)
Вместо этого он должен быть недоступен, но принимает запрос на ответ.
Итак, почему микросервис принимает событие запроса, хотя его статус в реестре сервера eureka не работает?
Приложение Eureka Server application.ymlфайл
server: port: 10100 address: localhost eureka: client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://localhost:10100/eureka/ instance: prefer-ip-address: true server: enable-self-preservation: true wait-time-in-ms-when-sync-empty: 0
Eureka Client (микро-сервис-1) application.yml файл
server: port: 10501 address: localhost eureka: client: registerWithEureka: true fetchRegistry: true serviceUrl: defaultZone: http://localhost:10100/eureka/ instance: hostname: localhost prefer-ip-address: true
Ваш сервис не имеет встроенного способа интерпретации того, что вы отключили его в Eureka, поэтому вызов вашего сервиса путем прямого нажатия на его порт всегда будет работать.
Чтобы использовать знания каталога о состоянии сервера и множественных экземплярах серверов, вам необходимо вызвать службу из API, например tape , который может создать программный балансировщик нагрузки из каталога. Вы также можете совершать звонки через Zuul API-прокси , который по сути является просто микросервисом, встроенным внутри ленты.
Во всех этих случаях помните, что облачные микросервисы в конечном итоге согласуются . То есть внесенные вами изменения могут быть недоступны мгновенно, и для их распространения потребуется время.