【问题标题】:Can Netflix Eureka server be used as a proxy between microservices environments?Netflix Eureka 服务器可以用作微服务环境之间的代理吗?
【发布时间】:2020-04-24 15:05:36
【问题描述】:

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

我的问题:
是否可以将 Eureka 配置为在我的工作站上注册本地服务,但也可以转发/故障转移到远程 Eureka 对等方,以便我为所有其他远程微服务点击正确的远程网关?

【问题讨论】:

    标签: java spring-boot microservices netflix-eureka spring-cloud-netflix


    【解决方案1】:

    这应该可以通过使用区域来实现:

    https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.2.2.RELEASE/reference/html/#zones

    为了使其正常工作,您需要让 Eureka 服务器将彼此视为对等方。官方文档在这里:

    https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.2.2.RELEASE/reference/html/#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  
    

    因此,您在本地运行的任何服务都将是首选,但如果您调用的服务未在本地运行,它将回退到其他区域。

    注意:如果生产集群中没有运行给定服务的实例但您碰巧在本地运行它们,则“生产”实例可以通过这种方式调用您的本地实例.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-03
      • 2015-05-14
      • 2021-02-10
      • 2020-11-01
      • 1970-01-01
      • 2020-05-22
      • 2015-07-20
      • 2018-04-29
      相关资源
      最近更新 更多