我们的项目需要对node.js进行TCP数据包负载平衡.
建议是:(Nginx或LVS)保持生命的节点集群
问题:
>与TCP服务器的高并发客户端连接需要长期存在. Nginx或LVS中哪一个更合适?
>我们需要为主服务器上的节点主服务器分配不同的优先级(本地主机服务器的优先级将高于远程服务器). Nginx或LVS可以做到这一点?
> Nginx或LVS是谁的CPU使用率较小且吞吐量较高?
>在Nginx和LVS之间进行性能基准测试/功能比较的任何推荐文档吗?
最后,我们想知道我们的建议是否合理.还有其他更好的建议或组件可供选择吗?
1)nginx仅通过第3方模块https://github.com/yaoweibin/nginx_tcp_proxy_module支持TCP如果您不需要Web服务器,我会说LVS更合适,但是请在#回答的末尾看到我的其他评论.
2)LVS支持优先级,nginx不支持.
3)可能是LVS:nginx是用户级的LVS内核.
4)谎言,该死的谎言和基准.您必须模拟设备上的负载,编写节点客户端脚本并敲击设置.
我们正在考虑使用https://github.com/LearnBoost/up从头到尾的所有节点,但尚未投入生产,但由于以下原因,我们正在采用此路线:
1)我们也有优先级要求,但它们是自定义的,并且会动态更改.我们正在运行时调整优先级,并且花了不到一个小时的时间对节点进行编程.
2)我们部署了大量代码更新,并且向上更新使我们能够在不中断现有客户端的情况下进行更新.因为您可以对它进行编码以执行所需的任何操作,所以我们可以启动全新的流程来处理新的连接,并在现有连接全部消失后让旧的连接消失.
3)我们可以看到所有内容,因为我们将要查看的任何指标推送到Redis服务器中.
我确信它不是每个进程/服务器性能最高的,但是拥有这么多程序控制的优势是值得的,而横向扩展则具有更多冗余的优势,因此我们不打算从中挤出最后的性能.堆栈.
我只是快速地检查了一下是否可以复制/粘贴一堆代码,但是我们正在快速对其进行编码,并且它对很多不适合公众使用的内容进行了引用.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。