繁体   English   中英

50.000个并发连接的Node.js系统要求

[英]Node.js system requirements for 50.000 concurrent connections

情况是,每分钟大约有50.000个电子设备将连接到在node.js中创建的Web服务。 每个人都将发送一个包含一些JSON数据的POST请求。 所有这些数据都应得到保护。 Web服务将接收这些请求,并将数据保存到数据库中。 同时读取请求是能够从DB获得一些数据。

我认为,建立基于以下基础设施系统:

Node.js + memcached +(mysql集群或Couchbase)

因此,我需要为Web服务器分配什么内存要求才能处理所有这些连接? 假设在悲观的可能性中,我将有50.000个并发请求。

如果我使用SSL来保护连接? 我是否添加了过多的开销,每个连接? 我应该扩展系统来处理它们吗?

你对我有什么建议?

提前谢谢了!

当然,不可能提供任何有价值的计算,因为它总是非常具体的。 我建议您从一开始就开发可伸缩的系统架构。
并使用JMeter https://jmeter.apache.org/进行负载测试。 然后,您将能够从1000s扩展到无限的连接。
这是1000000条连接文章http://www.slideshare.net/sh1mmer/a-million-connections-and-beyond-nodejs-at-scale

请记住,您的nodejs应用程序将是单线程的。 这意味着当您增加并发请求的数量时,您的性能将大大降低。

您可以采取的措施来提高性能,这是为计算机上拥有的每个核心创建一个节点进程,这些核心全部位于代理(例如nginx)之后,并且您还可以为应用程序使用多台计算机。

如果您仅向memcache发出请求,则您的api不会降级。 但是一旦您开始查询mysql,它将开始限制您的其他请求。

编辑:如注释中所建议,您还可以使用群集来分派工作进程,并使它们相互竞争传入的请求。 (工作人员将在单独的线程上运行,从而使您可以使用所有内核)。 多核计算机上的Node.js

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM