0

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

我认为建立一个基于以下基础设施的系统:

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

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

如果我使用 SSL 来保护连接怎么办?我是否会为每个连接增加太多开销?我应该扩展系统来处理它们吗?

你有什么建议?

提前谢谢了!

4

2 回答 2

2

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

于 2014-02-14T15:17:07.700 回答
-3

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

你可以做些什么来提高你的性能是为你机器上的每个核心创建一个节点进程,所有这些核心都在一个代理后面(比如 nginx),你也可以为你的应用程序使用多台机器。

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

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

于 2014-02-14T16:36:00.770 回答