我在我的应用程序中使用Spring Eureka作为发现服务器,该服务器是使用微服务架构实现的。这些服务主要是用PHP创建的,它们在启动时使用Eureka REST端点进行注册,并且每个端点每30秒发送一次心跳信号,并且一切正常。

现在,假设服务A想与服务B对话。发现是如何发生的?
目前,我认为服务A应该向http://localhost:8761/eureka/apps/service-B端点发送GET请求,检索服务B当前实例的列表,然后在它们之间进行选择。这是正确的方法吗?
负载平衡呢?我是否应该在服务中实施该请求以每次请求不同的实例?还是在它们之间随机选择?

任何帮助将不胜感激。

更新:查看this library

最佳答案

使用Spring Cloud Netflix Sidecar有一个简单的方法:http://cloud.spring.io/spring-cloud-static/Camden.SR7/#_polyglot_support_with_sidecar

如果您想自己继续执行此操作,则有几种选择。使用客户端负载平衡,您可以从Eureka检索所有实例,然后在使用端随机选择一个。如果要服务器端负载平衡,则需要一个额外的组件,例如Zuul,并让它执行负载平衡和路由。 Zuul使用eureka配置,因此易于集成。

07-24 20:25