Netflix Eureka服务器可以作为微服务环境之间的代理吗?

问题描述 投票:1回答:1

先谢谢大家看这个问题! 我想做的是这样的。我正在使用Spring-BootJava开发微服务,Zuul和Eureka分别作为网关和注册表。我遇到的问题是,我想在本地开发我的新微服务,但仍然能够调用在远程集群上运行的其他现有微服务。我的想法是,我可以在本地运行Eureka,并利用它的对等功能将失败的本地请求转发到位于远程集群的Eureka服务器。

我的问题是 是否可以配置Eureka在我的工作站上注册本地服务,但也可以转发失败的请求到远程Eureka对等体,这样我就可以为所有其他远程微服务找到正确的远程网关?

java spring-boot microservices netflix-eureka spring-cloud-netflix
1个回答
1
投票

这应该可以通过使用Zones来实现。

https:/cloud.spring.iospring-cloud-staticspring-cloud-netflix2.2.2.RELEASEreferencehtml#zones。

为了达到这个目的,你需要让Eureka服务器之间相互视为对等体。官方文档在这里。

https:/cloud.spring.iospring-cloud-staticspring-cloud-netflix2.2.2.RELEASEreferencehtml#spring-cloud-eureka-server-peer-awareness。

您可以将您的服务配置为优先选择某个区域。

// Config for your production services
eureka.instance.metadataMap.zone = production
eureka.client.preferSameZoneEureka = true

// Config for your local services
eureka.instance.metadataMap.zone = local
eureka.client.preferSameZoneEureka = true  

因此,您在本地运行的任何服务都会被优先选择,但如果您调用的服务没有在本地运行,它将回退到其他区域。

请注意,如果您的服务不是在本地运行,那么您的服务将回退到另一个区域。: 如果生产集群中没有运行某个服务的实例,但你恰好在本地运行它们,那么 "生产 "实例可以通过这种方式调用你的本地实例。

© www.soinside.com 2019 - 2024. All rights reserved.