首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从使用eureka调用其他内部微服务的spring云微服务中调用外部非REST API?

问如何从使用eureka调用其他内部微服务的spring云微服务中调用外部非REST API?
EN

Stack Overflow用户
提问于 2017-01-20 20:04:24
回答 2查看 1.8K关注 0票数 1

在我们的项目中,我们使用Spring cloud + Eureka作为服务注册中心。当我们使用ribbon客户端调用内部微服务时,所有URL都通过Eureka解析...这是一个调用外部URL的问题。由于外部API都是老式的,所以使用Feign似乎不是一个好的选择。

从这样的服务调用外部URL的最佳方式是什么?

提前感谢

帕特里斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-20 21:58:44

一种工作方式:使用两种配置。

声明您的RestTemplate Bean来调用外部服务,如下所示:

代码语言:javascript
复制
@Primary
@Qualifier("withoutEureka")
@Bean
public RestTemplate restTemplate(){
...
}

以这种方式将此引用注入您的客户端

代码语言:javascript
复制
@Bean
public MyClientForExtCall myClientForExtCall(@Qualifier("withoutEureka")RestTemplate restTemplate)

在其他配置中,照常使用restTemplate,但不要忘记使用另一个限定符

代码语言:javascript
复制
@LoadBalanced
@Bean
@Qualifier("withEureka")
public RestTemplate loadBalancedEureka(){
...
}

@Bean
public MyClientForInternal myClientForInternal(@Qualifier("withoutEureka")RestTemplate restTemplate)

帕特里斯

票数 1
EN

Stack Overflow用户

发布于 2017-12-05 03:31:31

您可以使用Ribbon而不使用Eureka。对于无法在Eureka中配置以提取发现的外部API。您可以在客户端和配置服务器列表中对它们的URL进行硬编码。Ribbon客户端默认为已配置的服务器列表,您可以提供如下配置:

代码语言:javascript
复制
stores:
  ribbon:
    listOfServers: example.com, google.com
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41763267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档