当前位置: 首页 > 知识库问答 >
问题:

如何在nodejs中为发现的微服务进行客户端负载平衡

张伯寅
2023-03-14

我们正在尝试在一个环境中使用nodejs构建一个微服务,其中包含用java/Spring Boot编写的其他微服务。

其他微服务使用consul.io进行服务发现,使用ribbon进行客户端负载平衡。(那将是:spring-boot、spring-cloud-starter-consul-discovery、spring-cloud-starter-feign和spring-cloud-starter-ribbon项目)

现在在这个组合中,我们有一个 consul 节点模块来注册或发现服务,但其余的事情呢?如何使用客户端上处理的负载平衡(类似于功能区)执行发现感知的 rest 调用。

如何在节点的堆栈中实现这一点?

共有2个答案

萧宣
2023-03-14

我想我应该暂时关闭它,已经有一段时间了。就像我在上面的评论中所说的那样,我已经为 Feign、Ribbon 构建并使用了逻辑对应物,对服务发现框架(目前可用于 consul.in 的插件)具有可扩展的支持,具有不同的负载平衡策略,以及声明性 API 映射,例如 Spring 启动中的假装接口、可配置的重试、流畅的 API 和对 hystrix 的支持。这是一个节点模块系列:https://www.npmjs.com/search?q=Sarathi

罗光华
2023-03-14

这有什么用吗?https://www.npmjs.com/package/resilient

它说:弹性在概念上类似于Netflix的项目丝带。

 类似资料:
  • 我有一个包含10个微服务的微服务架构,每个微服务提供一个客户端。在由微服务团队管理/控制的客户机内部,我们只接收参数并将它们传递给一个通用http调用程序,该调用程序接收endpoint和N个params,然后进行调用。所有微服务都使用http和web api(我猜技术并不重要)。 对于我来说,作为微服务团队提供一个客户是没有意义的,应该是消费者的责任,如果他们想创建一些抽象或者直接调用它是他们的

  • 我在kubernetes pods中使用带有Python的gRPC作为客户端/服务器......我希望能够启动多个相同类型的pod(gRPC服务器)并让客户端(随机)连接到它们。 我调度了10个服务器吊舱,并设置了一个“服务”来瞄准它们。然后,在客户端,我连接到服务的DNS名称——这意味着kubernetes应该进行负载平衡,并将我指向一个随机服务器pod。实际上,客户机调用gRPC函数(这很有效

  • 我是微服务的新手。(学习阶段)。我有一个问题。我们在云中部署微服务。(例如 AWS)。云已经提供了负载平衡和日志。我们还在Spring Boot中实现了负载平衡(功能区)和日志(Rabbit MQ和Zipkin)。这两种实现有什么区别?我们两者都需要吗?有些人可以回答这些问题吗? 提前感谢。

  • Ribbon是一个客户端负载均衡器,它可以很好地控制HTTP和TCP客户端的行为。Feign已经使用Ribbon,所以如果您使用@FeignClient,则本节也适用。 Ribbon中的中心概念是指定客户端的概念。每个负载平衡器是组合的组合的一部分,它们一起工作以根据需要联系远程服务器,并且集合具有您将其作为应用程序开发人员(例如使用@FeignClient注释)的名称。Spring Cloud使

  • 我有一个使用Spring Boot和Netflix OSS构建的微服务。我使用过中央配置服务器、Eureka和Zuul。由于可伸缩性,服务的多个实例运行在不同的端口上。所有实例都在Eureka中注册,但请求只会发送到最后一个注册的服务器。 ZUUL配置

  • 问题内容: 我正在尝试使用JmDNS在客户端服务器应用程序中启用服务发现。我完全理解服务器端的服务注册表,其代码类似于以下内容: 但是,我在弄清楚如何让我的客户端从注册的服务中检索端口号和IP地址并使用此数据打开TCP连接时遇到了麻烦。我搜索了有关如何使用JmDNS的示例,但无济于事。这里有人可以给我一些基本的例子吗?或者,如果有人在JmDNS上有指向良好资源/教程的链接,可以请他们提供吗? 注意