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

How to do client side load balancing for discovered microservices in nodejs

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

其他微服务正在使用 consul.io 进行服务发现,并使用功能区进行客户端负载平衡。 (即:spring-boot、spring-cloud-starter-consul-discovery、spring-cloud-starter-feign 和 spring-cloud-starter-ribbon项目)

现在在这个组合中,我们有一个 consul node module 来注册或发现服务,但是其他的呢?我如何使用在客户端处理的负载平衡进行发现感知的休息调用,类似于功能区。

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

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

它说:Resilient 在概念上类似于 Netflix 的项目 Ribbon。

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