Javascript 单独的web进程和工作进程,是否应该为每个进程打开一个新连接?
我目前正在尝试构建一个具有web和工作进程的NodeJS web应用程序,并使用AMQP在它们之间进行通信。在我当前的设置中,启动应用程序需要为web进程启动一个脚本(Javascript 单独的web进程和工作进程,是否应该为每个进程打开一个新连接?,javascript,node.js,rabbitmq,amqp,worker,Javascript,Node.js,Rabbitmq,Amqp,Worker,我目前正在尝试构建一个具有web和工作进程的NodeJS web应用程序,并使用AMQP在它们之间进行通信。在我当前的设置中,启动应用程序需要为web进程启动一个脚本(server.js),并为工作进程启动另一个脚本(worker.js)。它们中的每一个都包括第三个文件,amqp.js,该文件使用一个启动函数,该函数包括创建连接,然后创建通道,然后断言队列 然而,在尝试调试另一个问题时,我遇到了一个显示不同结构的问题:首先创建一个连接,然后启动两个进程,每个进程创建一个到该连接的通道并断言两个队
server.js
),并为工作进程启动另一个脚本(worker.js
)。它们中的每一个都包括第三个文件,amqp.js
,该文件使用一个启动函数,该函数包括创建连接,然后创建通道,然后断言队列
然而,在尝试调试另一个问题时,我遇到了一个显示不同结构的问题:首先创建一个连接,然后启动两个进程,每个进程创建一个到该连接的通道并断言两个队列
我是否应该为每个工作人员创建一个新连接,并且我是否可以在web和工作人员分离且无法通信的环境中实现此连接?RabbitMQ连接被认为是长期存在的。如果你的客户端共享内存,他们应该共享一个连接。这只是一个一般性的建议。如果你的应用程序有10个连接,我不知道有什么缺点。如果您有数千个连接,可能会影响性能,并使监控更加困难 要直接回答您的问题: 如果您的
工作者
是独立的,并且不与任何东西共享内存,那么您别无选择,只能为其创建新的RabbitMQ连接。否则,请重新使用连接