【发布时间】:2019-01-16 14:26:02
【问题描述】:
我正在 Heroku 平台上开发节点服务,该服务将接受来自不同客户端的请求,但一次只能处理 10 个请求。 收到请求后,我们将写入数据库,然后一次处理 10 个。 当多个向该服务发送请求并且我想在客户之间平均分配线程时。例如,客户 A 发送 10k 个请求,B 发送 5K 个请求,C 发送 100 个请求。
- 我们需要为 3 个客户平分线程。 2.完成客户C请求后,我想将可用线程平均分配给A和B。 3.B完成后,只到A。
- 如果我们收到任何其他客户的请求,我们需要拆分线程。 谁能帮我写这个算法。
谢谢
【问题讨论】:
-
基本上你在寻找负载平衡,对吧?
-
所以不是负载均衡请求,而是想要对客户端进行负载均衡,以便每个客户端的吞吐量保持一致? IE。有 M 个活跃请求的客户端的 N 个请求所花费的时间将类似于 (N*M)/(10*t)?并且第一个客户不占主导地位?客户端是否单独发送请求?还是分批(在您的示例中为 10k、5k 和 100 个)?目标是不是对于任何客户端,单个请求都将尽快处理,但对于多个并发请求,将优先于来自其他客户端的单个请求,而不是来自该客户端的第二个以上的请求?
标签: node.js rest heroku architecture