我有一个在 Spring Tools Suite 本地完美运行的 Spring Cloud 应用程序(Eureka、Ribbon、Zuul)。当我部署到 Pivotal Web 服务时,这些服务会在 Eureka 中注册(即,它们显示在 Eureka 控制台中),但是当我尝试让一个服务调用另一个服务时,我得到 Connection denied。当我尝试通过 Zuul 时,我收到转发错误,然后是连接被拒绝。
我尝试了以下各种组合,但似乎没有任何帮助。
eureka:
client:
serviceUrl:
defaultZone: http://myeurekaserver.cfapps.io/eureka/
instance:
preferIpAddress: true
# hostname: ${CF_INSTANCE_IP:localhost}
# nonSecurePort: ${CF_INSTANCE_PORT:${PORT:${server.port:8002}}}
hostname: ${vcap.application.uris[0]}
nonSecurePort: 80
对于服务调用,我使用 Autowired RestTemplate。在我的代码的另一部分中,我使用了非 Autowired RestTemplate。当我将它与 discoveryClient.getInstances(...) 一起使用时,我确实取回了我的服务的 IP 地址和端口。如果我尝试直接调用这些 IP 地址/端口,我也会收到 Connection Refused。
有任何想法吗?