Javascript Node.js:注册大量侦听器和回调时的瓶颈?

Javascript Node.js:注册大量侦听器和回调时的瓶颈?,javascript,node.js,events,callback,cluster-computing,Javascript,Node.js,Events,Callback,Cluster Computing,我正在开发一个应用程序,在这个应用程序中,一台服务器可能会收到多达100000个请求,请求相同的、执行缓慢(最多5秒)的过程的结果。这意味着一个EventEmitter,包含大量监听器和回调,这些监听器和回调都将立即触发。在这里,我需要注意哪些事情?内存不足是一个问题吗 更多的实现细节,如果相关的话:将使用集群,使用memcached缓存结果并进行锁定(因为一次只需要一个请求处理程序处理每个唯一的请求,而其他99999等待它完成),通过fork之间的进程间通信触发集群中的必要事件。所以在现实中,

我正在开发一个应用程序,在这个应用程序中,一台服务器可能会收到多达100000个请求,请求相同的、执行缓慢(最多5秒)的过程的结果。这意味着一个
EventEmitter
,包含大量监听器和回调,这些监听器和回调都将立即触发。在这里,我需要注意哪些事情?内存不足是一个问题吗

更多的实现细节,如果相关的话:将使用集群,使用memcached缓存结果并进行锁定(因为一次只需要一个请求处理程序处理每个唯一的请求,而其他99999等待它完成),通过fork之间的进程间通信触发集群中的必要事件。所以在现实中,我们可能会有4个节点进程,每个进程有25000个侦听器等待某个分布式事件

这似乎是Node.js擅长的事情,我不认为会有什么问题,因为每个请求都不是一个会被唤醒、消耗资源,然后除一个请求外所有请求都会再次进入睡眠的过程。相反,当事件被触发时,所有其他99999请求将在每个节点进程上的事件循环中以有序的方式逐个解析


我现在正在研究这个问题,所以我会在发布压力测试结果的同时发布,但我想在一开始我会问我们可能会遇到什么样的瓶颈。

EventEmitter过去每个名字只能有10个事件,所以我想你可能在这里有点牵强。()如果事件不重复,我看不出需要eventemitter;对于您不需要的工具来说,这是一个很大的开销。您是对的,尽管可以将限制设置为0以实现无限。我不知道还能怎么做。此服务器每秒可能会收到数千个请求,这些请求只需计算一次,但计算需要几秒钟(它涉及HTTP请求),因此必须在某处注册数千个回调。你能推荐另一种注册方式吗?