Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单独的web进程和工作进程,是否应该为每个进程打开一个新连接?_Javascript_Node.js_Rabbitmq_Amqp_Worker - Fatal编程技术网

Javascript 单独的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,该文件使用一个启动函数,该函数包括创建连接,然后创建通道,然后断言队列 然而,在尝试调试另一个问题时,我遇到了一个显示不同结构的问题:首先创建一个连接,然后启动两个进程,每个进程创建一个到该连接的通道并断言两个队

我目前正在尝试构建一个具有web和工作进程的NodeJS web应用程序,并使用AMQP在它们之间进行通信。在我当前的设置中,启动应用程序需要为web进程启动一个脚本(
server.js
),并为工作进程启动另一个脚本(
worker.js
)。它们中的每一个都包括第三个文件,
amqp.js
,该文件使用一个启动函数,该函数包括创建连接,然后创建通道,然后断言队列

然而,在尝试调试另一个问题时,我遇到了一个显示不同结构的问题:首先创建一个连接,然后启动两个进程,每个进程创建一个到该连接的通道并断言两个队列


我是否应该为每个工作人员创建一个新连接,并且我是否可以在web和工作人员分离且无法通信的环境中实现此连接?

RabbitMQ连接被认为是长期存在的。如果你的客户端共享内存,他们应该共享一个连接。这只是一个一般性的建议。如果你的应用程序有10个连接,我不知道有什么缺点。如果您有数千个连接,可能会影响性能,并使监控更加困难

要直接回答您的问题:

如果您的
工作者
是独立的,并且不与任何东西共享内存,那么您别无选择,只能为其创建新的RabbitMQ连接。否则,请重新使用连接