ホームページ >ウェブフロントエンド >jsチュートリアル >Node.jsを使った簡単なタスク分散システムの開発方法
Node.js を使用してシンプルなタスク分散システムを開発する方法
はじめに
現代のソフトウェア開発では、タスク分散システムは非常に一般的であり、重要なコンポーネントです。タスクをさまざまなワーカー ノードに分散して並列処理を実現し、システム効率を向上させることができます。この記事では、Node.js を使用して簡単なタスク分散システムを開発する方法と、具体的なコード例を紹介します。
1.1 タスク ディストリビュータ
タスク ディストリビュータは、タスクを受信し、タスクをワーカー ノードに配布する責任があります。次の機能を提供する必要があります。
1.2 ワーカー ノード
ワーカー ノードはタスクの実行を担当します。
2.1 タスク ディストリビュータの作成
まず、タスク ディストリビュータ モジュールを作成する必要があります。タスク ディストリビュータ モジュールでは、タスク リクエストを受信するためのインターフェイスを定義し、負荷分散アルゴリズムを使用してワーカー ノードを選択できます。以下は簡単なサンプル コードです:
const express = require('express'); const app = express(); app.use(express.json()); // 接收任务请求 app.post('/task', (req, res) => { const { taskId, payload } = req.body; // 使用负载均衡算法选择工作节点 const selectedNode = selectNode(); // 将任务分发给工作节点 sendTask(selectedNode, taskId, payload); res.status(200).send('Task has been dispatched.'); }); app.listen(3000, () => { console.log('Task dispatcher is running on port 3000.'); });
2.2 ワーカー ノードの作成
次に、ワーカー ノードのモジュールを作成する必要があります。ワーカー ノード モジュールでは、タスクを受信し、タスク ロジックを実行するためのインターフェイスを定義できます。タスクの完了後、ワーカー ノードはタスクの結果をタスク ディストリビュータにフィードバックする必要があります。以下は簡単なサンプル コードです。
const express = require('express'); const app = express(); app.use(express.json()); // 注册到任务分发者 app.post('/register', (req, res) => { const { nodeId } = req.body; // 注册到任务分发者 registerNode(nodeId); res.status(200).send('Node has been registered.'); }); // 接收任务 app.post('/task', (req, res) => { const { taskId, payload } = req.body; // 执行任务逻辑 const result = executeTask(taskId, payload); // 反馈任务结果 sendTaskResult(taskId, result); res.status(200).send('Task has been completed.'); }); app.listen(4000, () => { console.log('Worker node is running on port 4000.'); });
以上がNode.jsを使った簡単なタスク分散システムの開発方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。