【问题标题】:Spring cloud - Server and clientSpring Cloud - 服务器和客户端
【发布时间】:2020-02-04 08:23:16
【问题描述】:

我正在使用 spring cloud eureka 配置应用程序。我在 8761 端口启动我的发现应用程序,并在“http://localhost:8761”中到达控制台。

所以,我启动了我的客户端应用程序,它出现在 eureka 控制台的“应用程序”页面中。

第一个问题: 我的客户端在属性配置中使用“server.port=0”,所以 tomcat 端口是随机启动的。我怎样才能在客户中获得我的服务?示例:我在“/api/stuff”中有一个获取请求,是否可以不使用随机端口访问它?假设我不知道端口!

第二个问题: 我可以启动任何我想要的客户端,它们会启动,假设一个随机端口并在云服务器发现中注册,我可以看到日志:

"在状态为 UP 的 eureka 中注册应用 FLY-CLIENT"

但它们没有出现在eureka控制台的“应用程序”页面中,为什么它们没有出现?

谢谢!

【问题讨论】:

    标签: spring-cloud spring-cloud-netflix spring-cloud-config spring-cloud-feign


    【解决方案1】:

    如果您使用 Spring RestTemplate 来请求在 Eureka 中注册的服务,您需要将其设置为 @LoadBalanced,这样应该可以尝试:

    @LoadBalanced
    @Bean
    RestTemplate restTemplate() {
        return new RestTemplate();
    }
    
    // usage
    restTemplate.getForObject("http://your-service-name/api/stuff", StuffResponse.class);
    

    至于第二个问题,我有点困惑,正如您之前在问题中提到的,您的应用程序出现在 Eureka 的仪表板上。这种行为是否只发生在“fly-client”上?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-11
      • 2021-05-08
      • 1970-01-01
      • 2019-10-15
      • 2021-12-03
      • 2017-05-27
      • 2016-11-26
      • 2015-02-02
      相关资源
      最近更新 更多