在我们的项目中,我们使用Spring cloud Eureka作为服务注册中心。当我们使用ribbon客户端调用内部微服务时,所有URL都通过Eureka解析。。。调用外部URL是个问题。由于外部API是老式的,所以使用Feign似乎不是一个好选择。
从这样的服务调用外部URL的最佳方式是什么?
提前谢谢
帕特里斯
你可以在没有尤里卡的情况下使用Ribbon。对于无法在Eureka中配置以抽象发现的外部API。您可以在客户端硬编码他们的URL,并配置服务器列表。Ribbon客户端默认为已配置的服务器列表,您可以提供如下配置:
stores:
ribbon:
listOfServers: example.com, google.com
一种工作方式:使用两种配置。
声明RestTemplate Bean以调用如下外部服务:
@Primary
@Qualifier("withoutEureka")
@Bean
public RestTemplate restTemplate(){
...
}
以这种方式将此引用注入客户机
@Bean
public MyClientForExtCall myClientForExtCall(@Qualifier("withoutEureka")RestTemplate restTemplate)
在其他配置中,像往常一样使用restTemplate,但不要忘记使用另一个限定符
@LoadBalanced
@Bean
@Qualifier("withEureka")
public RestTemplate loadBalancedEureka(){
...
}
@Bean
public MyClientForInternal myClientForInternal(@Qualifier("withoutEureka")RestTemplate restTemplate)
帕特里斯
此功能的状态是实验性的。我们欢迎您对此功能的实用性的反馈。我们可能会在未来发展这个功能,使其更加通用。虽然我们将努力确保向后兼容性,但不能保证。 场景 在某些情况下,希望能够从交易处理函数中调用REST API。这使你可以将区块链中的复杂计算移出。调用REST API允许交易处理器功能将复杂或昂贵的计算外包给中央或peer托管的服务。 调用外部REST服务 post(url,data)函数可用于交
我正在使用尤里卡发现服务器。我可以通过通过使用服务名从另一个微服务调用一个微服务,这对Eureka服务器是可见的。我听说在不久的将来将被弃用。 我还可以通过使用从另一个微服务调用一个微服务,但在本例中,我需要使用整个主机名。我不能叫他们服务名称。 是的,我可以从属性文件设置基本url,这样不需要重新启动jar,我们就可以更改基本url。如果我们这样做,那么我们可能不需要任何discovery服务器
我使用spring boot web flux从事一个微服务项目,下面是一些服务: BaseInfoService 通知服务 会计服务 订单服务 PerformService 现在,我应该使用webClient进行服务调用,将来我会使用kafka和spring cloud stream并将请求作为事件发送。 第一个问题是我应该在控制器中使用还是? 第二个问题:我在github和其他站点中看到了许多
我正在使用microservies Architect学习API。下面是关于设置的小描述 我有两个微服务应用程序和API网关 包括API网关在内的所有应用程序都是NodeJS-Express app。 Auth Logic-JWT,在API网关上处理 使用http-proxy将每个传入的API网关请求传递给每个微服务应用程序。 还将用户信息作为代理头传递。 客户端请求流: 客户端使用JWT令牌从m
我有两个不同的微服务,将尤里卡作为服务注册表,现在我正在尝试从另一个微服务调用微服务,解析带有功能区的endpoint以进行客户端负载平衡。 服务A: 此服务公开一个终结点,并且应用程序.yml 如下所示: 调用服务A的服务B具有以下应用程序类: 控制器 服务 但我在尝试访问服务时遇到了一个异常: 对此有什么建议吗?
我如何将这个Spring Boot微服务配置为Linux服务,在Linux服务中我可以使用以下标志启动和停止它: 非常感谢。