先谢谢大家看这个问题! 我想做的是这样的。我正在使用Spring-BootJava开发微服务,Zuul和Eureka分别作为网关和注册表。我遇到的问题是,我想在本地开发我的新微服务,但仍然能够调用在远程集群上运行的其他现有微服务。我的想法是,我可以在本地运行Eureka,并利用它的对等功能将失败的本地请求转发到位于远程集群的Eureka服务器。
我的问题是 是否可以配置Eureka在我的工作站上注册本地服务,但也可以转发失败的请求到远程Eureka对等体,这样我就可以为所有其他远程微服务找到正确的远程网关?
这应该可以通过使用Zones来实现。
https:/cloud.spring.iospring-cloud-staticspring-cloud-netflix2.2.2.RELEASEreferencehtml#zones。
为了达到这个目的,你需要让Eureka服务器之间相互视为对等体。官方文档在这里。
您可以将您的服务配置为优先选择某个区域。
// 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
因此,您在本地运行的任何服务都会被优先选择,但如果您调用的服务没有在本地运行,它将回退到其他区域。
请注意,如果您的服务不是在本地运行,那么您的服务将回退到另一个区域。: 如果生产集群中没有运行某个服务的实例,但你恰好在本地运行它们,那么 "生产 "实例可以通过这种方式调用你的本地实例。