Мы используем Eureka с нашими приложениями Spring Boot уже несколько месяцев. Мы включили поиск служб между приложениями с помощью аннотаций @DiscoveryClient
. Регистрация, продление аренды и отмена регистрации работают, как и ожидалось.
Недавно мы столкнулись со сценарием, в котором у нас есть компонент приложения, отличный от Java (написанный на C++), который предоставляет 3 конечные точки службы REST, которые будут использовать многие из наших Java-приложений Spring Boot. Мы пытаемся выяснить, может ли компонент C++ использовать REST API-интерфейсы сервера Eureka для регистрации при появлении, чтобы Java-приложения Spring Boot могли выполнять обычный поиск через Eureka для связи с компонентом C++.
Поскольку я не могу использовать клиент Eureka в компонентах C++ (очевидно), я начал тестировать прямые REST API (как описано здесь) с помощью Postman. Регистрация прошла без проблем, отправив полезную нагрузку JSON методом POST на http://eurekaserver:8761/eureka/apps/FOO-APP (с instanceId = 1111 и hostName = foo-app). Я могу запросить http://eurekaserver:8761/eureka/apps и увидеть FOO-APP в списке как ожидал.
Однако, когда я пытаюсь отменить операцию с помощью метода DELETE для http://eurekaserver:8761/eureka/apps/FOO-APP/1111 или http://eurekaserver:8761/eureka/apps/FOO-APP/foo-app, я получаю ошибку 404.
С идентификатором экземпляра:
{
"timestamp": 1447479397996,
"status": 404,
"error": "Not Found",
"message": "Not Found",
"path": "/eureka/apps/FOO-APP/1111"
}
ИЛИ (тот же результат для hostName):
{
"timestamp": 1447479397996,
"status": 404,
"error": "Not Found",
"message": "Not Found",
"path": "/eureka/apps/FOO-APP/foo-app"
}
Я пробовал разные комбинации, но у меня не получается. У меня такое чувство, что я упускаю что-то очевидное - может быть, что-то маленькое. Любая помощь в этом будет оценена по достоинству.
PS: в документации по конечной точке Eureka REST в URL-адресе упоминается «v2». Однако в моем случае это не работает. Регистрация (которая работает для меня) не использует «v2», как описано выше. Если бы кто-то мог подтвердить это, это также было бы полезно. Просто не хватает материалов на эту тему.
instanceId
где-нибудь в приложениях? - person spencergibb   schedule 16.11.2015v2
. Я использую Eureka с Spring Cloud Starter Angle.SR3. Я регистрируюсь, используя URL-адрес POST, а не через Java (чтобы попробовать URL-адреса Eureka REST через cURL). Все, что мне нужно, это конечная точка REST, которая работает для операции DELETE или отмены. - person Bloodysock   schedule 16.11.2015