2

我们正在运行基于Spring Boot的环境,其中包含约15个微服务和在Eureka注册的Zuul Edge网关。目前,我已经通过Zuul网关设置了所有微服务来调用其他微服务(例如,如果serviceA需要调用serviceB,则URL配置属性将为serviceB.baseUrl=http://zuul.mydomain.com:7001,其中zuul.mydomain.com是我们在AWS上的开发服务器,其他所有微服务都在后台运行它)。 Zuul依次通过Eureka注册表查找代理微服务。在Netflix上寻求适当的开发方法建议Eureka可发现的Spring Boot服务以最小的开销

这样做的一个好处是,对于在本地机器上工作的开发人员,他只需要运行其服务,并且可以通过AWS上的Zuul网关访问其他服务的所有其他依赖关系(以及我们的生态系统,有很多这样的跨服务依赖关系)。现在

,我更喜欢利用在尤里卡/丝带的全部潜力,并直接调用通过其服务名同行的microService和@LoadBalanced RestTemplate,但我觉得这会强加了很多在具有给开发者在他的机器上重新创建整个生态系统。至少,他将不得不运行Eureka,他自己的服务以及他的服务所依赖的任何其他服务。这使得进入发展的障碍不必要地高。

我确实考虑让开发者的本地实例注册到AWS我们的尤里卡服务,但问题是,在AWS上的所有服务都使用EC2实例的私有IP是从开发人员的机器基本上可达注册。如果我强制服务使用其公共IP注册,这意味着我必须为每项服务使用更多的ElasticIP分配,或每次EC2实例重新启动时更改IP。

我可以在本地网络中运行本地的Eureka +微服务环境,但这意味着我需要为每个运营的办公室创建一个这样的环境,这意味着更多的开销。除了这个问题,这可能意味着开发人员A可能会调用开发人员B的半完成 - 不完全版本的依赖服务,只是在发生问题时混淆每个人(服务部署到我们的AWS环境中至少需要经过代码审查才能部署)。

如果有人想出了一种方法来简化开发人员的设置,同时能够利用Feign/@LoadBalanced RestTemplate客户端的点对点服务调用可能性,我希望得到一些正确方向的指示。

回答

1

已经证实,我可以完成我想要的东西(这是能够做到的丝带启用RestTemplate客户当地的发展,而不必运行尤里卡)由:

  1. 力色带使用尤里卡无法使用以下属性:ribbon.eureka.enabled=false
  2. 手动提供功能区服务器以指向使用下面的示例属性:servicename.ribbon.listOfServers=test.service.com:8080