При развертывании микросервисов с поддержкой Spring Cloud на JBoss мы должны использовать contextPath. Похоже, что Turbine не получает contextPath от eureka, а eureka, похоже, не запрашивает его у микросервисов.
Еще немного деталей:
Каждый микросервис имеет свой собственный Jboss и свой собственный contextPath, определенный в войне, как таковой:
hostname1:port1/products
hostname2:port2/users
hostname3:port3/orders
Конечные точки (привод и наши собственные) отображаются после contextPath (без использования management.context-path):
hostname1:port1/products/env
hostname1:port1/products/info
hostname1:port1/products/books
hostname1:port1/products/books/123
Eureka заботится только об имени хоста и порте. Это позволяет нам определить другой UrlPath для информации и здоровья, хотя это не часть данных, которые Turbine должна получить в hystrix.stream:
eureka:
instance:
statusPageUrlPath: ${server.contextPath}/info
healthCheckUrlPath: ${server.contextPath}/health
Есть ли способ сообщить Turbine, какой contextPath используется для какого приложения? Они различаются для каждого приложения, поэтому исправление для всего кластера описано здесь будет недостаточно.