在 JBoss 上部署支持 Spring Cloud 的微服务时,我们必须使用 contextPath。Turbine 似乎没有从 eureka 获取 contextPath,并且 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 只关心主机名和端口。它允许我们为 info 和 health 定义不同的 UrlPath,尽管这不是 Turbine 需要获取 hystrix.stream 的数据的一部分:
eureka:
instance:
statusPageUrlPath: ${server.contextPath}/info
healthCheckUrlPath: ${server.contextPath}/health
有没有办法告诉 Turbine 哪个 contextPath 用于哪个应用程序?这些对于每个应用程序都是不同的,所以我想这里描述的集群范围的修复是不够的。