gpt4 book ai didi

node.js - 用于 Node.js 负载平衡的 Nginx 或 LVS?

转载 作者:搜寻专家 更新时间:2023-10-31 23:49:39 28 4
gpt4 key购买 nike

我们的项目需要对node.js做TCP包负载均衡。

方案是:(Nginx或LVS)+Keepalived+ Node 集群

enter image description here

问题:

  1. 与 TCP 服务器的高并发客户端连接需要长期存在。 Nginx 和 LVS 哪个更合适?
  2. 我们需要在Master服务器上为node master分配不同的优先级(localhost服务器的优先级会比remote server高)。哪一个可以做到这一点,Nginx 还是 LVS?
  3. Nginx 和 LVS 谁的 CPU 使用率更小吞吐量更高?
  4. 对于 Nginx 和 LVS 之间的性能基准测试/功能比较有什么推荐的文档吗?

最后,我们想知道我们的提议是否合理。还有其他更好的方案或组件可以选择吗?

最佳答案

我假设您不需要 nginx 来服务器静态 Assets ,否则 LVS 将不是一个选项。

1) nginx 仅通过第三方模块支持 TCP https://github.com/yaoweibin/nginx_tcp_proxy_module如果您不需要网络服务器,我会说 LVS 更合适,但请参阅我在 #'d 答案末尾的附加评论。

2)LVS支持优先级,nginx不支持。

3) 可能是 LVS:nginx 是 userland,LVS 内核。

4) 谎言,该死的谎言和基准。您必须在您的设备上模拟您的负载,编写一个 Node 客户端脚本并执行您的设置。

我们正在考虑将所有 Node 从前到后向上移动 https://github.com/LearnBoost/up尚未投入生产,但我们正在追求这条路线,原因如下:

1) 我们也有优先级要求,但它们是自定义的并且会动态变化。我们正在运行时调整优先级,我们用了不到一个小时的时间来编程 Node 来完成它。

2) 我们部署了大量代码更新,up 允许我们在不中断现有客户端的情况下进行更新。因为您可以对其进行编码来做任何您想做的事情,所以我们可以启动全新的流程来处理新的连接,并在现有连接全部消失时让旧流程消失。

3) 我们可以看到一切,因为我们将我们想要看到的任何指标推送到 Redis 服务器中。

我敢肯定它不是每个进程/服务器的最高性能,但是拥有如此多的程序控制的优势是值得的,并且横向扩展具有更多冗余的优势,因此我们不会考虑挤压最后一点堆栈外的性能。

我只是快速检查一下是否可以复制/粘贴一堆代码,但我们正在快速编码它并且它有很多不适合公众消费的东西的引用。

关于node.js - 用于 Node.js 负载平衡的 Nginx 或 LVS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10239944/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com