Amazon web services 在Netflix Eureka discoverable Spring Boot服务上寻求适当开发方法的建议,并尽可能减少开销
我们正在运行一个基于Spring Boot的环境,其中包含大约15个微服务和一个注册于Eureka的Zuul edge网关。目前,我已将所有微服务设置为通过Zuul网关调用其他微服务(例如,如果serviceA需要调用serviceB,URL配置属性将为Amazon web services 在Netflix Eureka discoverable Spring Boot服务上寻求适当开发方法的建议,并尽可能减少开销,amazon-web-services,spring-boot,netflix-zuul,netflix-eureka,netflix-feign,Amazon Web Services,Spring Boot,Netflix Zuul,Netflix Eureka,Netflix Feign,我们正在运行一个基于Spring Boot的环境,其中包含大约15个微服务和一个注册于Eureka的Zuul edge网关。目前,我已将所有微服务设置为通过Zuul网关调用其他微服务(例如,如果serviceA需要调用serviceB,URL配置属性将为serviceB.baseUrl)=http://zuul.mydomain.com:7001其中zuul.mydomain.com是我们在AWS上的开发服务器,所有其他微服务都在其后面运行)。Zuul依次通过Eureka注册表查找代理微服务 这
serviceB.baseUrl)=http://zuul.mydomain.com:7001
其中zuul.mydomain.com是我们在AWS上的开发服务器,所有其他微服务都在其后面运行)。Zuul依次通过Eureka注册表查找代理微服务
这样做的一个好处是,对于在本地机器上工作的开发人员来说,他只需要运行他的服务,其他服务的所有依赖关系都可以通过AWS上的Zuul网关访问(在我们的生态系统中,有很多这样的跨服务依赖关系)
现在,我真的很想充分利用Eureka/Ribbon的潜力,通过它的服务名和@LoadBalanced RestTemplate
直接调用对等微服务,但我发现这会让开发者不得不在自己的机器上重新创建一个完整的生态系统。至少,他必须运行Eureka、他自己的服务以及他服务所依赖的任何其他服务。这使得进入发展的门槛不必要地高
我确实考虑过将开发者的本地实例注册到AWS上的EUKA服务,但问题是AWS上的所有服务都是使用EC2实例的私有IP登记的,这是基本上无法从开发人员的机器上获得的。如果我强制该服务使用其公共IP注册,这将意味着我必须为每个服务使用更多的ElasticIP分配,或者在每次EC2实例重新启动时更改IP
我可以在本地网络中运行本地Eureka+微服务环境,但这意味着我需要为我们运营的每个办公室创建一个这样的环境,这只意味着更多的管理费用。除此之外,这可能意味着开发人员A可能会调用开发人员B的半个尚未完成版本的依赖项服务,如果出现问题,这会让每个人都感到困惑(部署到AWS环境中的服务在部署之前至少要先经过代码审查)如果有人想出了一种方法来简化开发人员的设置,同时能够利用
Feign/@LoadBalanced restemplate
客户端的点对点服务调用的可能性,我很想得到一些正确方向的指针。已经确认我可以实现我想要的(能够在启用功能区的RestTemplate客户端上进行本地开发,而无需运行Eureka),方法是:
Ribbon.Eureka.enabled=false
servicename.Ribbon.listofserver=test.service.com:8080