Có thể sử dụng mô đun cụm trong các hàm lambda không? Tôi đã thử điều này:Cụm NodeJS trên AWS Lambda
'use strict';
var cluster = require('cluster');
var http = require('http');
var os = require('os');
var numCPUs = os.cpus().length;
console.log('Number of Cores : ', numCPUs);
exports.test = (event, context, callback) => {
if (cluster.isMaster) {
for (var i = 0; i < numCPUs; ++i) {
cluster.fork();
}
} else {
console.log('child process ');
}
}
số lõi luôn là 2, nhưng tôi không bao giờ thấy nhật ký quy trình con.
Cập nhật ví dụ bình luận:
tôi đã cố gắng thực hiện các mô hình nhắn tin nhưng tôi vẫn không nhận được tin nhắn được gửi bởi trẻ em. Vòng lặp for vòng lặp chính xác thông qua các công nhân cụm nhưng không bao giờ tìm thấy một thông báo.
'use strict';
var cluster = require('cluster');
var http = require('http');
var os = require('os');
var numCPUs = os.cpus().length;
console.log('Number of Cores : ', numCPUs);
exports.test = (event, context, callback) => {
if (cluster.isMaster) {
for (var i = 0; i < numCPUs; ++i) {
cluster.fork();
}
for (const id in cluster.workers) {
cluster.workers[id].on('message', messageHandler);
}
} else {
process.send('running');
}
};
function messageHandler(msg) {
console.log(msg);
}
Bạn đã thấy lợi ích về hiệu suất về điều này chưa? Tại sao bạn muốn thực hiện nó? – kbariotis
Tôi đã thử nghiệm hiệu suất. Cuối cùng tôi đã đi với một lambda duy nhất thay vì một cụm. Nếu bạn quan tâm tôi có thể đào các kết quả sao lưu từ các bài kiểm tra hiệu suất. –
Tuyệt đối! Cảm ơn bạn – kbariotis