当前位置: 首页 > 知识库问答 >
问题:

当spring-cloud与netflix Eureka一起使用时,如何使Discovery客户端工作?

许展鹏
2023-03-14
    null
    null
@EnableAutoConfiguration
@EnableHystrix
@EnableEurekaClient
@ComponentScan("cloud.rest.resources, spring.cloud.client")
public class ClientBoot {
    public static void main(String[] args) {
        SpringApplication.run(ClientBoot.class, args);
    }
}

消息客户端-REST资源:

@RestController
public class MessageResource {
    @Autowired
    private MessageClient messageClient;
    @RequestMapping(value = "/message/{client}", method = RequestMethod.GET)
    public Message getMessage(@PathVariable String client) {
        return messageClient.getMessage(client);
    }
}

消息客户端-MessageClient:

@Service
public class RestMessageClient implements MessageClient {
    @Autowired
    private DiscoveryClient discoveryClient;
    @Autowired
    private RestTemplate restTemplate;
    @Override
    public Message getMessage(String client) {
        return restTemplate.getForObject(String.format("http://message-server/message/%s", client), Message.class);
    }
}

保存消息的message server引导类具有与客户端相同的注释。

    null
eureka:
    client:
        serviceUrl:
            defaultZone: http://localhost:8761/eureka
    null

共有1个答案

柳奇思
2023-03-14

实际使用功能区负载均衡器需要什么?

ribbon-loadbalancer必须在类路径上(例如通过“Spring-Cloud-Starter-Ribbon”)。然后,您可以将其作为LoadBalancerClient注入,或者可以注入RestTemplate(如果您有LoadBalancerClient,那么它将是负载均衡器感知的)。

我必须使用丝带才能使用“自动发现”,我以为没有,但现在我只是困惑。

你想要多少就多少。一根绳子有多长?如果我是你,我会尽量将中心配置保持在最小(仅限于在环境之间或运行时更改的内容)。

有没有人有一个很好的链接,在那里我可以阅读更多关于所有的属性,正在设置在我的yml文件?既有关于现有属性的实际功能的文档,也有关于如何将它们与spring Cloud结合使用的文档?

Spring Boot和Spring Cloud具有外部化属性的自动生成元数据。新一代IDEs理解它们(请参阅STS 3.6.4或IDEA 14.1),并且它们列在用户指南(至少适用于Spring Boot)下的http://docs.Spring.io/spring-boot/docs/current/reference/htmlsingle/#common-application-properties

 类似资料:
  • 我想使用Apache连接器和Jersey 2.3客户端进行HTTPS连接。 我尝试了以下方法: 但是,sslContext似乎被忽略,因为服务器的证书被拒绝为不受信任(sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径) 如果删除“.withConfig(clientConfig)”部分,SSL连接可

  • 问题内容: 是否可以将动态值设置为标头? 注册RequestInterceptor的实现会添加标头,但是无法动态设置标头值 我在github上发现了以下问题,其中一个注释者(lpborges)试图使用@RequestMapping注释中的标头做类似的事情。 问题答案: 解决方案是使用@RequestHeader批注而不是伪装的特定批注

  • Spring cloud config client不使用Spring Boot2.5.1,而是使用2.5.0。 application-dev.yml

  • 我在文档中找不到足够的关于artemis事务的信息。我不清楚artemis交易是如何工作的,所以我想澄清一下。类中有两个方法: 和 我找不到任何开始交易的方法,我也不知道阿尔特弥斯的交易到底是什么。哪些操作可以提交或回滚? 我已经测试了几个场景,我有了我的结论。有两个操作可以提交或回滚:消息发送和消息接收(确认)。方法和仅用于提交和回滚消息发送和确认。开始事务不需要任何方法。只有可以提交或回滚的未

  • 当运行config-client时,得到以下错误...简单的事情直接从spring指南不起作用。 来自配置的日志-客户端服务 已与目标VM断开连接,地址:“127.0.0.1:59908”,传输:“套接字”

  • 我使用spring cloud领事发现我的申请需要的服务。discovery客户端返回请求的服务的所有注册实例,尽管我也返回失败的实例。 Consult本身将失败的实例准确地标记为失败(关键)。 那么,为什么discovery客户端不删除关键/失败实例呢?或者描述这一点的文档在哪里?