【问题标题】:Spring Cloud Eureka with Non-JVM Language (PHP) / Discovering Services Using Eureka REST Endpoints使用非 JVM 语言 (PHP) 的 Spring Cloud Eureka / 使用 Eureka REST 端点发现服务
【发布时间】:2018-04-24 00:06:26
【问题描述】:

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

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

任何帮助将不胜感激。

更新:看看this library

【问题讨论】:

  • 你会在哪里部署这些服务,也许你甚至可以使用平台上的一些东西?
  • @Jeff 他们不会部署在 AWS 上,可能会部署在我国的一些云服务器上。

标签: java php microservices spring-cloud spring-cloud-netflix


【解决方案1】:

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

如果您想继续自己实施,您有多种选择。通过客户端负载平衡,您可以从 Eureka 检索所有实例,然后在消费端随机选择一个。如果你想要服务器端负载平衡,你将需要一个额外的组件,比如 Zuul,让它来做负载平衡和路由。 Zuul 使用 eureka 配置,所以很容易集成。

【讨论】:

    猜你喜欢
    • 2018-04-15
    • 2016-12-15
    • 2017-02-20
    • 2015-04-11
    • 2019-05-24
    • 2018-10-18
    • 2020-05-22
    • 2018-01-18
    • 2016-05-26
    相关资源
    最近更新 更多