在远程服务器_Nodejs

时间:2019-11-14 10:39:50

标签: node.js multithreading

我知道我可以对此问题投反对票。但我的需求有所不同。我正在创建某种机制来处理远程服务器中的工作程序。从现在开始,我有两种方法:

首先:这是我从nodejs文档中使用的代码。对于Node.js团队而言,这很明显。

const {
  Worker, isMainThread, parentPort, workerData
} = require('worker_threads');

if (isMainThread) {
  module.exports = function parseJSAsync(script) {
    return new Promise((resolve, reject) => {
      const worker = new Worker(__filename, {
        workerData: script
      });
      worker.on('message', resolve);
      worker.on('error', reject);
      worker.on('exit', (code) => {
        if (code !== 0)
          reject(new Error(`Worker stopped with exit code ${code}`));
      });
    });
  };
} else {
  const { parse } = require('some-js-parsing-library');
  const script = workerData;
  parentPort.postMessage(parse(script));
}

但是我正在创建一个平衡器,该平衡器包含我要在其中运行工作程序的远程服务器地址。首先,如何告诉我这种平和的代码我的工作人员是远程的,而不是本地文件?

enter image description here

现在看完这张照片,您就可以得到我想要达到的目标。

第二:我没有找到任何用于负载均衡的软件包。我做了一些搜索,发现做这些事情的正确方法与网格计算系统有关。这样超出了我的能力。但是我发现我可以将我的工作程序和线程存储在某种数据库中。并在请求到达我的服务器平衡器后检查,以检查有多少个可用工作线程以及它们上正在运行多少个线程。我的问题是:这是正确的解决方案,还是我在这里做错了?请给我一些线索,我在这里迷路了。

0 个答案:

没有答案