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 중국어 웹사이트의 기타 관련 기사를 참조하세요!